def test_make_udpip_got_a_sensitive_port(self): # Can you bind system ports ? for sensitive_port in (0, 1, 1023): node = Node() self.assertIsNone(node.udp_sock) self.assertEqual(node.udp_ip, (None, None)) with self.subTest(sensitive_port=sensitive_port): node.make_udpip('localhost', sensitive_port) if node.udp_sock: # Really !!! You can bind a sensitive port. # Are you root ? # You must study security. # You must open many security holes. self.assertIsInstance(node.udp_sock, socket.socket) self.assertEqual(node.udp_ip, ('localhost', sensitive_port)) node.release() else: # You cannot bind a sensitive port. # You have a good security policy. self.assertIsNone(node.udp_sock) # However port must be set. for debug. self.assertEqual(node.udp_ip, ('localhost', sensitive_port))
def test_core_node_init_success(self): node = Node('localhost', 10000) self.assertEqual(node.udp_ip, ('localhost', 10000)) self.assertIsInstance(node._last_moment, threading.Event) self.assertIsInstance(node._status, dict) self.assertIsInstance(node.udp_sock, socket.socket) node.release()
def test_make_udpip_success(self): node = Node() self.assertIsNone(node.udp_sock) self.assertEqual(node.udp_ip, (None, None)) node.make_udpip('localhost', 4444) self.assertIsInstance(node.udp_sock, socket.socket) self.assertEqual(node.udp_ip, ('localhost', 4444)) node.release()
def test_core_node_release(self): node = Node('localhost', 55555) self.assertEqual(node.udp_ip, ('localhost', 55555)) self.assertIsInstance(node.udp_sock, socket.socket) self.assertFalse(node.udp_sock._closed) node.release() self.assertTrue(node.udp_sock._closed) self.assertIsInstance(node.udp_sock, socket.socket)
def test_make_udpip_got_on_the_boundary_port(self): for on_the_boundary_port in (1024, 65535): node = Node() self.assertIsNone(node.udp_sock) self.assertEqual(node.udp_ip, (None, None)) node.make_udpip('localhost', on_the_boundary_port) self.assertIsInstance(node.udp_sock, socket.socket) self.assertEqual(node.udp_ip, ('localhost', on_the_boundary_port)) node.release()
def test_core_node_status(self): node = Node('localhost', 55555) self.assertIsInstance(node.udp_sock, socket.socket) self.assertEqual(node.udp_ip, ('localhost', 55555)) status = node.get_status() self.assertEqual(status['host'], 'localhost') self.assertEqual(status['port'], 55555) node.release()