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_make_udpip_got_out_of_range_port(self): # OverflowError: getsockaddrarg: port must be 0-65535. for invalid_port in (-1, 65535 + 1): node = Node() self.assertIsNone(node.udp_sock) self.assertEqual(node.udp_ip, (None, None)) node.make_udpip('localhost', invalid_port) self.assertIsNone(node.udp_sock) self.assertEqual(node.udp_ip, ('localhost', invalid_port))
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_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_make_udpip_doesnt_make_udpip(self): pairs_of_host_port = [(None, 4444), ('localhost', None), (None, None)] for host, port in pairs_of_host_port: node = Node() self.assertIsNone(node.udp_sock) self.assertEqual(node.udp_ip, (None, None)) node.make_udpip(host, port) self.assertIsNone(node.udp_sock) self.assertEqual(node.udp_ip, (host, port))