def test_change_dynamic_to_reserved(self): subnet = make_plain_subnet() iprange = IPRange( subnet=subnet, type=IPRANGE_TYPE.DYNAMIC, start_ip="192.168.0.2", end_ip="192.168.0.5", ) iprange.save() # Reserved should save OK overlapping gateway IP. iprange.type = IPRANGE_TYPE.RESERVED iprange.start_ip = "192.168.0.1" iprange.save()
def test_change_reserved_to_dynamic(self): subnet = make_plain_subnet() iprange = IPRange( subnet=subnet, type=IPRANGE_TYPE.RESERVED, start_ip="192.168.0.1", end_ip="192.168.0.5", ) # Reserved should save OK overlapping gateway IP. iprange.save() # Dynamic should not save overlapping gateway IP. iprange.type = IPRANGE_TYPE.DYNAMIC with ExpectedException(ValidationError, self.dynamic_overlaps): iprange.save() # Fix start_ip and now it should save. iprange.start_ip = "192.168.0.2" iprange.save()
def test_no_save_range_overlap_begin(self): subnet = make_plain_subnet() IPRange( subnet=subnet, type=IPRANGE_TYPE.DYNAMIC, start_ip="192.168.0.100", end_ip="192.168.0.150", ).save() # Make an overlapping range across start_ip, should fail to save. iprange = IPRange( subnet=subnet, type=IPRANGE_TYPE.DYNAMIC, start_ip="192.168.0.90", end_ip="192.168.0.100", ) with ExpectedException(ValidationError, self.dynamic_overlaps): iprange.save() # Try as reserved range. iprange.type = IPRANGE_TYPE.RESERVED with ExpectedException(ValidationError, self.reserved_overlaps): iprange.save()