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_out_of_bounds_negative_index_should_raise(self): i = IPRange(IP('10.0.42.0'), IP('10.0.42.127')) with pytest.raises(IndexError): i[-129]
def test_ipv6_range_length_should_be_correct(self): i = IPRange(IP('fe80:700:1::'), IP('fe80:700:1::f')) assert len(i) == 16
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::/') assert i.len() > 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_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_out_of_bounds_negative_index_should_raise(self): i = IPRange(IP('10.0.42.0'), IP('10.0.42.127')) self.assertRaises(IndexError, lambda x: i[x], -129)
def test_indexed_access_should_work(self): i = IPRange(IP('10.0.42.0'), IP('10.0.42.127')) self.assertEquals(i[5], IP('10.0.42.5'))
def test_ipv6_range_length_should_be_correct(self): i = IPRange(IP('fe80:700:1::'), IP('fe80:700:1::f')) self.assertEquals(len(i), 16)
def test_ipv4_range_length_should_be_correct(self): i = IPRange(IP('10.0.42.0'), IP('10.0.42.127')) self.assertEquals(len(i), 128)
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_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_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_ipv4_with_unspecified_mask_should_parse(self): i = IPRange.from_string('192.168.63/') assert len(i) > 1
def test_range_with_no_end_should_raise(self): with pytest.raises(ValueError): IPRange.from_string('10.0.42.0-')
def test_ipv4_with_unspecified_mask_should_parse(self): i = IPRange.from_string('192.168.63/') self.assertTrue(len(i) > 1)
def test_empty_range_should_raise(self): with pytest.raises(ValueError): IPRange.from_string('')
def test_ipv6_with_unspecified_mask_should_parse(self): i = IPRange.from_string('fe80:800:1::/') self.assertTrue(i.len() > 1)
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_ipv4_range_length_should_be_correct(self): i = IPRange(IP('10.0.42.0'), IP('10.0.42.127')) assert len(i) == 128
def test_indexed_access_should_work(self): i = IPRange(IP('10.0.42.0'), IP('10.0.42.127')) assert i[5] == IP('10.0.42.5')
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')