def test_no_update_when_glue(self): """A record shouldn't update it's label or domain when it is a glue record""" label = 'ns99' glue = AddressRecord(label=label, domain=self.o_e, ip_str='128.193.1.10', ip_type='4') glue.save() server = "%s.%s" % (label, self.o_e) ns = Nameserver(domain=self.o_e, server=server) ns.save() self.assertTrue(ns.glue == glue) # Shouldn't be able to edit label or domain. glue.label = "ns100" self.assertRaises(ValidationError, glue.save) glue.domain = self.m_o_e self.assertRaises(ValidationError, glue.save) glue = AddressRecord.objects.get(pk=glue.pk) glue.label = "ns101" glue.domain = self.e self.assertRaises(ValidationError, glue.save) # Ip can change. glue = AddressRecord.objects.get(pk=glue.pk) glue.ip_str = "192.192.12.12" glue.save()
def test_invalid_update_to_existing(self): rec1 = AddressRecord(label='bar', domain=self.z_o_e, ip_str="128.193.40.1", ip_type='4') rec2 = AddressRecord(label='bar', domain=self.z_o_e, ip_str="128.193.40.2", ip_type='4') rec3 = AddressRecord(label='foo', domain=self.z_o_e, ip_str="128.193.40.1", ip_type='4') rec3.save() rec2.save() rec1.save() rec1.label = "foo" self.assertRaises(ValidationError, rec1.save) rec3.label = "bar" self.assertRaises(ValidationError, rec3.save) osu_block = "633:105:F000:" rec1 = AddressRecord(label='bar', domain=self.z_o_e, ip_str=osu_block + ":1", ip_type='6') rec2 = AddressRecord(label='bar', domain=self.z_o_e, ip_str=osu_block + ":2", ip_type='6') rec3 = AddressRecord(label='foo', domain=self.z_o_e, ip_str=osu_block + ":1", ip_type='6') rec1.save() rec2.save() rec3.save() rec2.ip_str = osu_block + ":1" self.assertRaises(ValidationError, rec2.save) rec3.label = 'bar' self.assertRaises(ValidationError, rec3.save)
def test_disallow_name_update_of_glue_A(self): # Glue records should not be allowed to change their name. glue = AddressRecord(label='ns39', domain=self.f_r, ip_str= '128.193.1.77', ip_type='4') glue.clean() glue.save() data = {'domain': self.f_r, 'server': 'ns39.foo.ru'} ns = self.do_add(**data) self.assertTrue(ns.glue) self.assertEqual(ns.glue, glue) glue.label = "ns22" self.assertRaises(ValidationError, glue.clean)
def test_disallow_name_update_of_glue_A(self): # Glue records should not be allowed to change their name. glue = AddressRecord(label='ns39', domain=self.f_r, ip_str='128.193.1.77', ip_type='4') glue.clean() glue.save() data = {'domain': self.f_r, 'server': 'ns39.foo.ru'} ns = self.do_add(**data) self.assertTrue(ns.glue) self.assertEqual(ns.glue, glue) glue.label = "ns22" self.assertRaises(ValidationError, glue.clean)