def is_ip_address(thing): """Checks if this is an ip-address valid for machinetracker""" try: IPRange.from_string(thing) except ValueError: return False else: return True
def test_ipv4_with_unspecified_mask_should_parse(self): i = IPRange.from_string('192.168.63/') assert len(i) > 1
def test_ipv4_short_subnet_should_parse(self): i = IPRange.from_string('10.0.99/24') assert i[0] == IP('10.0.99.0') assert i[-1] == IP('10.0.99.255')
def test_ipv4_short_subnet_should_parse(self): i = IPRange.from_string('10.0.99/24') self.assertEquals(i[0], IP('10.0.99.0')) self.assertEquals(i[-1], IP('10.0.99.255'))
def test_simple_ipv6_range_should_parse(self): i = IPRange.from_string('fe80:700:1::-fe80:700:1::f') assert i[0] == IP('fe80:700:1::') assert i[-1] == IP('fe80:700:1::f')
def test_multi_mask_should_raise(self): with pytest.raises(ValueError): IPRange.from_string('10.0.0.0/8/24')
def test_invalid_netmask_should_raise(self): with pytest.raises(ValueError): IPRange.from_string('10.0.0.0/2000')
def test_garbage_range_should_raise(self): with pytest.raises(ValueError): IPRange.from_string('blapp')
def test_ipv6_with_unspecified_mask_should_parse(self): i = IPRange.from_string('fe80:800:1::/') self.assertTrue(i.len() > 1)
def test_ipv4_with_unspecified_mask_should_parse(self): i = IPRange.from_string('192.168.63/') self.assertTrue(len(i) > 1)
def test_assembled_ipv6_range_should_parse(self): i = IPRange.from_string('fe80:700:1::aaa-fff') self.assertEquals(i[0], IP('fe80:700:1::aaa')) self.assertEquals(i[-1], IP('fe80:700:1::fff'))
def test_assembled_ipv4_range_should_parse(self): i = IPRange.from_string('10.0.42.0-127') self.assertEquals(i[0], IP('10.0.42.0')) self.assertEquals(i[-1], IP('10.0.42.127'))
def test_simple_ipv6_range_should_parse(self): i = IPRange.from_string('fe80:700:1::-fe80:700:1::f') self.assertEquals(i[0], IP('fe80:700:1::')) self.assertEquals(i[-1], IP('fe80:700:1::f'))
def test_simple_ipv4_range_should_parse(self): i = IPRange.from_string('10.0.42.0-10.0.42.63') self.assertEquals(i[0], IP('10.0.42.0')) self.assertEquals(i[-1], IP('10.0.42.63'))
def test_ipv6_with_unspecified_mask_should_parse(self): i = IPRange.from_string('fe80:800:1::/') assert i.len() > 1
def test_range_with_no_end_should_raise(self): with pytest.raises(ValueError): IPRange.from_string('10.0.42.0-')
def test_empty_range_should_raise(self): with pytest.raises(ValueError): IPRange.from_string('')
def test_multi_range_should_raise(self): with pytest.raises(ValueError): IPRange.from_string('10.0.0.0-10.0.1.0-42')
def test_simple_ipv4_range_should_parse(self): i = IPRange.from_string('10.0.42.0-10.0.42.63') assert i[0] == IP('10.0.42.0') assert i[-1] == IP('10.0.42.63')
def test_assembled_ipv6_range_should_parse(self): i = IPRange.from_string('fe80:700:1::aaa-fff') assert i[0] == IP('fe80:700:1::aaa') assert i[-1] == IP('fe80:700:1::fff')
def test_assembled_ipv4_range_should_parse(self): i = IPRange.from_string('10.0.42.0-127') assert i[0] == IP('10.0.42.0') assert i[-1] == IP('10.0.42.127')