from commands.sniff import is_ip_address import unittest class TestIsIpAddress(unittest.TestCase): def test_valid_ipv4_address_all_octets_in_range(self): self.assertTrue(is_ip_address("192.168.1.1")) self.assertTrue(is_ip_address("0.0.0.0")) self.assertTrue(is_ip_address("255.255.255.255")) def test_ipv4_address_with_leading_zeros(self): self.assertTrue(is_ip_address("192.168.001.001")) self.assertTrue(is_ip_address("0.0.0.0")) self.assertTrue(is_ip_address("255.255.255.255")) def test_ipv4_address_mixed_single_double_digit_octets(self): self.assertTrue(is_ip_address("192.168.1.01")) self.assertTrue(is_ip_address("0.0.0.0")) self.assertTrue(is_ip_address("255.255.255.255")) def test_ipv4_address_maximum_values_in_octets(self): self.assertTrue(is_ip_address("255.255.255.255")) self.assertTrue(is_ip_address("0.0.0.0")) self.assertTrue(is_ip_address("192.168.1.1")) def test_ipv4_address_minimum_values_in_octets(self): self.assertTrue(is_ip_address("0.0.0.0")) self.assertTrue(is_ip_address("192.168.1.1")) self.assertTrue(is_ip_address("255.255.255.255")) def test_ipv4_address_more_than_four_octets_invalid(self): self.assertFalse(is_ip_address("192.168.1.1.1")) self.assertFalse(is_ip_address("0.0.0.0.0")) self.assertFalse(is_ip_address("255.255.255.255.255")) def test_ipv4_address_fewer_than_four_octets_invalid(self): self.assertFalse(is_ip_address("192.168.1")) self.assertFalse(is_ip_address("0.0")) self.assertFalse(is_ip_address("255")) def test_ipv4_address_non_numeric_characters_invalid(self): self.assertFalse(is_ip_address("192.a.b.c")) self.assertFalse(is_ip_address("0.x.y.z")) self.assertFalse(is_ip_address("255.q.w.e")) def test_ipv4_address_octets_out_of_range_invalid(self): self.assertFalse(is_ip_address("256.256.256.256")) self.assertFalse(is_ip_address("300.300.300.300")) self.assertFalse(is_ip_address("999.999.999.999")) def test_ipv4_address_empty_string_invalid(self): self.assertFalse(is_ip_address("")) self.assertFalse(is_ip_address(" ")) self.assertFalse(is_ip_address(None))