|
@@ -0,0 +1,39 @@
|
|
|
|
+import socket
|
|
|
|
+from unittest import mock
|
|
|
|
+import unittest
|
|
|
|
+
|
|
|
|
+from vpneverywhere.port_scanner import Scanner
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class TestPortScanner(unittest.TestCase):
|
|
|
|
+ def setUp(self):
|
|
|
|
+ self.scanner = Scanner('0.0.0.0')
|
|
|
|
+
|
|
|
|
+ @mock.patch('socket.socket.recvfrom')
|
|
|
|
+ @mock.patch('socket.socket.send')
|
|
|
|
+ @mock.patch('socket.socket.connect')
|
|
|
|
+ def test__scan_tcp(self, connect_fn, send_fn, recvfrom_fn):
|
|
|
|
+ self.assertTrue(self.scanner._scan_tcp(42))
|
|
|
|
+
|
|
|
|
+ @mock.patch('socket.socket.connect')
|
|
|
|
+ def test__scan_tcp_connection_refused(self, connect_fn):
|
|
|
|
+ connect_fn.side_effect = ConnectionRefusedError()
|
|
|
|
+ self.assertFalse(self.scanner._scan_tcp(42))
|
|
|
|
+
|
|
|
|
+ @mock.patch('socket.socket.connect')
|
|
|
|
+ def test__scan_tcp_timeout(self, connect_fn):
|
|
|
|
+ connect_fn.side_effect = socket.timeout()
|
|
|
|
+ self.assertFalse(self.scanner._scan_tcp(42))
|
|
|
|
+
|
|
|
|
+ @mock.patch('socket.socket.recvfrom')
|
|
|
|
+ def test__scan_udp(self, recvfrom_fn):
|
|
|
|
+ self.assertTrue(self.scanner._scan_udp(42))
|
|
|
|
+
|
|
|
|
+ @mock.patch('socket.socket.recvfrom')
|
|
|
|
+ def test__scan_udp_timeout(self, recvfrom_fn):
|
|
|
|
+ recvfrom_fn.side_effect = socket.timeout()
|
|
|
|
+ self.assertFalse(self.scanner._scan_udp(42))
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+if __name__ == '__main__':
|
|
|
|
+ unittest.main()
|