class CNAMEStaticRegTests(TestCase): def create_domain(self, name, ip_type=None, delegated=False): if ip_type is None: ip_type = '4' if name in ('arpa', 'in-addr.arpa', 'ip6.arpa'): pass else: name = ip_to_domain_name(name, ip_type=ip_type) d = Domain(name=name, delegated=delegated) d.clean() self.assertTrue(d.is_reverse) return d def setUp(self): self.arpa = self.create_domain(name='arpa') self.arpa.save() self.i_arpa = self.create_domain(name='in-addr.arpa') self.i_arpa.save() self.c = Domain(name="ccc") self.c.save() self.f_c = Domain(name="foo.ccc") self.f_c.save() self.r1 = self.create_domain(name="10") self.r1.save() self.n = System() self.n.clean() self.n.save() def do_add_intr(self, mac, label, domain, ip_str, ip_type='4'): r = StaticInterface(mac=mac, label=label, domain=domain, ip_str=ip_str, ip_type=ip_type, system=self.n) r.clean() r.save() repr(r) return r def test1_delete_cname(self): mac = "11:22:33:44:55:66" label = "foo4" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} i = self.do_add_intr(**kwargs) cn, _ = CNAME.objects.get_or_create(label='foo', domain=domain, target=label + "." + domain.name) self.assertRaises(ValidationError, i.delete) def test1_delete_override(self): mac = "12:22:33:44:55:66" label = "foo6" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} i = self.do_add_intr(**kwargs) cn, _ = CNAME.objects.get_or_create(label='food', domain=domain, target=label + "." + domain.name) i.delete(check_cname=False)
class DeleteStaticInterTests(TestCase): def create_domain(self, name, ip_type=None, delegated=False): if ip_type is None: ip_type = '4' if name in ('arpa', 'in-addr.arpa', 'ip6.arpa'): pass else: name = ip_to_domain_name(name, ip_type=ip_type) d = Domain(name=name, delegated=delegated) d.clean() self.assertTrue(d.is_reverse) return d def setUp(self): self.arpa = self.create_domain(name='arpa') self.arpa.save() self.i_arpa = self.create_domain(name='in-addr.arpa') self.i_arpa.save() self.c = Domain(name="ccc") self.c.save() self.f_c = Domain(name="foo.ccc") self.f_c.save() self.r1 = self.create_domain(name="10") self.r1.save() self.n = System() self.n.clean() self.n.save() View.objects.get_or_create(name="private") def do_add(self, mac, label, domain, ip_str, system, ip_type='4'): r = StaticInterface(mac=mac, label=label, domain=domain, ip_str=ip_str, ip_type=ip_type, system=system) r.clean() r.save() return r def do_delete(self, r): ip_str = r.ip_str fqdn = r.fqdn r.delete() self.assertFalse( AddressRecord.objects.filter(ip_str=ip_str, fqdn=fqdn)) def test1_delete_basic(self): # Does deleting a system delete it's interfaces? mac = "11:22:33:44:55:66" label = "foo" domain = self.f_c ip_str = "10.0.0.2" system = System(hostname="foo") system.save() kwargs = { 'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str, 'system': system} self.do_add(**kwargs) self.assertTrue(StaticInterface.objects.filter(**kwargs)) system.delete() self.assertFalse(StaticInterface.objects.filter(**kwargs))
class AuxAttrTests(TestCase): def create_domain(self, name, ip_type=None, delegated=False): if ip_type is None: ip_type = '4' if name in ('arpa', 'in-addr.arpa', 'ip6.arpa'): pass else: name = ip_to_domain_name(name, ip_type=ip_type) d = Domain(name=name, delegated=delegated) d.clean() self.assertTrue(d.is_reverse) return d def setUp(self): self.arpa = self.create_domain(name='arpa') self.arpa.save() self.i_arpa = self.create_domain(name='in-addr.arpa') self.i_arpa.save() self.c = Domain(name="ccc") self.c.save() self.f_c = Domain(name="foo.ccc") self.f_c.save() self.r1 = self.create_domain(name="10") self.r1.save() self.n = System() self.n.clean() self.n.save() def do_add(self, mac, label, domain, ip_str, ip_type='4'): self.n = System() r = StaticInterface(mac=mac, label=label, domain=domain, ip_str=ip_str, ip_type=ip_type, system=self.n) r.clean() r.save() repr(r) return r def do_delete(self, r): ip_str = r.ip_str fqdn = r.fqdn r.delete() self.assertFalse( AddressRecord.objects.filter(ip_str=ip_str, fqdn=fqdn)) def test1_create(self): mac = "11:22:33:44:55:66" label = "foo" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} intr = self.do_add(**kwargs) intr.update_attrs() def bad_get(): intr.attrs.primary self.assertRaises(AttributeError, bad_get) x = StaticIntrKeyValue.objects.filter(key='primary', obj=intr) self.assertFalse(x) intr.attrs.primary = '1' self.assertEqual(intr.attrs.cache['primary'], '1') self.assertEqual(intr.attrs.primary, '1') x = StaticIntrKeyValue.objects.filter(key='primary', obj=intr) self.assertEqual(x[0].value, '1') def test6_create(self): mac = "24:22:33:44:55:66" label = "foo" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} intr = self.do_add(**kwargs) intr.update_attrs() intr.update_attrs() intr.update_attrs() def bad_get(): intr.attrs.primary self.assertRaises(AttributeError, bad_get) intr.attrs.primary = '1' self.assertEqual(intr.attrs.primary, '1') self.assertEqual(intr.attrs.cache['primary'], '1') def test2_create(self): mac = "13:22:33:44:55:66" label = "foo" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} intr = self.do_add(**kwargs) intr.update_attrs() intr.attrs.primary = '2' self.assertEqual(intr.attrs.primary, '2') self.assertEqual(intr.attrs.cache['primary'], '2') del intr.attrs.primary def bad_get(): intr.attrs.primary self.assertRaises(AttributeError, bad_get) intr.attrs.primary = '3' self.assertEqual(intr.attrs.primary, '3') self.assertEqual(intr.attrs.cache['primary'], '3') def test1_del(self): mac = "12:22:33:44:55:66" label = "foo" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} intr = self.do_add(**kwargs) intr.update_attrs() intr.attrs.primary = '88' self.assertEqual(intr.attrs.primary, '88') del intr.attrs.primary def bad_get(): intr.attrs.primary self.assertRaises(AttributeError, bad_get) def test3_create(self): mac = "19:22:33:44:55:66" label = "foo" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} intr = self.do_add(**kwargs) intr.update_attrs() def bad_assign(): intr.attrs.primary = 'a' self.assertRaises(ValidationError, bad_assign) def test1_existing_attrs(self): mac = "19:22:33:44:55:66" label = "foo" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} intr = self.do_add(**kwargs) StaticIntrKeyValue(key="foo", value="bar", obj=intr).save() StaticIntrKeyValue( key="interface_type", value="eth0", obj=intr).save() StaticIntrKeyValue(key="alias", value="5", obj=intr).save() intr.update_attrs() self.assertEqual(intr.attrs.alias, '5') self.assertEqual(intr.attrs.cache['alias'], '5') self.assertEqual(intr.attrs.interface_type, 'eth0') self.assertEqual(intr.attrs.cache['interface_type'], 'eth0') self.assertEqual(intr.attrs.foo, 'bar') self.assertEqual(intr.attrs.cache['foo'], 'bar')
class AStaticRegTests(TestCase): def create_domain(self, name, ip_type=None, delegated=False): if ip_type is None: ip_type = '4' if name in ('arpa', 'in-addr.arpa', 'ip6.arpa'): pass else: name = ip_to_domain_name(name, ip_type=ip_type) d = Domain(name=name, delegated=delegated) d.clean() self.assertTrue(d.is_reverse) return d def setUp(self): self.arpa = self.create_domain(name='arpa') self.arpa.save() self.i_arpa = self.create_domain(name='in-addr.arpa') self.i_arpa.save() self.c = Domain(name="ccc") self.c.save() self.f_c = Domain(name="foo.ccc") self.f_c.save() self.r1 = self.create_domain(name="10") self.r1.save() self.n = System() self.n.clean() self.n.save() def do_add_intr(self, mac, label, domain, ip_str, ip_type='4'): r = StaticInterface(mac=mac, label=label, domain=domain, ip_str=ip_str, ip_type=ip_type, system=self.n) r.clean() r.save() repr(r) return r def do_add_a(self, label, domain, ip_str, ip_type='4'): a = AddressRecord(label=label, domain=domain, ip_str=ip_str, ip_type=ip_type) a.clean() a.save() return a def do_delete(self, r): ip_str = r.ip_str fqdn = r.fqdn r.delete() self.assertFalse( AddressRecord.objects.filter(ip_str=ip_str, fqdn=fqdn)) def test1_conflict_add_intr_first(self): # Add an intr and make sure A can't exist. mac = "11:22:33:44:55:66" label = "foo4" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add_intr(**kwargs) kwargs = {'label': label, 'domain': domain, 'ip_str': ip_str} self.assertRaises(ValidationError, self.do_add_a, **kwargs) def test1_conflict_add_A_first(self): # Add an A and make sure an intr can't exist. mac = "11:22:33:44:55:66" label = "foo5" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add_a(**kwargs) kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} self.assertRaises(ValidationError, self.do_add_intr, **kwargs) def test2_conflict_add_intr_first(self): # Add an intr and update an existing A to conflict. Test for exception. mac = "12:22:33:44:55:66" label = "fo99" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add_intr(**kwargs) ip_str = "10.0.0.3" kwargs = {'label': label, 'domain': domain, 'ip_str': ip_str} a = self.do_add_a(**kwargs) a.ip_str = "10.0.0.2" self.assertRaises(ValidationError, a.save) def test2_conflict_add_A_first(self): # Add an A and update and existing intr to conflict. Test for # exception. mac = "11:22:33:44:55:66" label = "foo98" domain = self.f_c ip_str = "10.0.0.2" # Add A kwargs = {'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add_a(**kwargs) # Add Intr with diff IP ip_str = "10.0.0.3" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} intr = self.do_add_intr(**kwargs) # Conflict the IP on the intr intr.ip_str = "10.0.0.2" self.assertRaises(ValidationError, intr.save)
class V6StaticInterTests(TestCase): def create_domain(self, name, ip_type=None, delegated=False): if ip_type is None: ip_type = '4' if name in ('arpa', 'in-addr.arpa', 'ip6.arpa'): pass else: name = ip_to_domain_name(name, ip_type=ip_type) d = Domain(name=name, delegated=delegated) d.clean() self.assertTrue(d.is_reverse) return d def setUp(self): self.arpa = self.create_domain(name='arpa') self.arpa.save() self.i_arpa = self.create_domain(name='ip6.arpa', ip_type='6') self.i_arpa.save() self.c = Domain(name="ccc") self.c.save() self.f_c = Domain(name="foo.ccc") self.f_c.save() self.r1 = self.create_domain(name="0", ip_type='6') self.r1.save() self.r2 = self.create_domain(name="1", ip_type='6') self.r2.save() self.n = System() self.n.clean() self.n.save() def do_add(self, mac, label, domain, ip_str, ip_type='6'): r = StaticInterface(mac=mac, label=label, domain=domain, ip_str=ip_str, ip_type=ip_type, system=self.n) r.clean() r.save() repr(r) return r def do_delete(self, r): ip_str = r.ip_str fqdn = r.fqdn r.delete() self.assertFalse( AddressRecord.objects.filter(ip_str=ip_str, fqdn=fqdn)) def test1_create_basic(self): mac = "11:22:33:44:55:66" label = "foo" domain = self.f_c ip_str = "12::" + mac kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add(**kwargs) def test2_create_basic(self): mac = "20:22:33:44:55:66" label = "foo1" domain = self.f_c ip_str = "123::" + mac kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add(**kwargs) def test3_create_basic(self): mac = "11:22:33:44:55:66" label = "foo1" domain = self.f_c ip_str = "1234::" + mac kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add(**kwargs) def test4_create_basic(self): mac = "12:22:33:44:55:66" label = "foo1" domain = self.f_c ip_str = "11::" + mac kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add(**kwargs) def test1_delete(self): mac = "12:22:33:44:55:66" label = "foo1" domain = self.f_c ip_str = "112::" + mac kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} r = self.do_add(**kwargs) self.do_delete(r) def test1_dup_create_basic(self): mac = "11:22:33:44:55:66" label = "foo3" domain = self.f_c ip_str = "1123::" + mac kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add(**kwargs) self.assertRaises(ValidationError, self.do_add, **kwargs) def test1_bad_add_for_a_ptr(self): # Intr exists, then try ptr and A mac = "11:22:33:44:55:6e" label = "9988fooddfdf" domain = self.c ip_str = "111::" + mac kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} ip_type = '6' i = self.do_add(**kwargs) i.clean() i.save() a = AddressRecord(label=label, domain=domain, ip_str=ip_str, ip_type=ip_type) self.assertRaises(ValidationError, a.clean) ptr = PTR(ip_str=ip_str, ip_type=ip_type, name=i.fqdn) self.assertRaises(ValidationError, ptr.clean) def test2_bad_add_for_a_ptr(self): # PTR and A exist, then try add intr mac = "11:22:33:44:55:66" label = "9988fdfood" domain = self.c ip_str = "1112::" + mac kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} ip_type = '6' a = AddressRecord(label=label, domain=domain, ip_str=ip_str, ip_type=ip_type) a.clean() a.save() ptr = PTR(ip_str=ip_str, ip_type=ip_type, name=a.fqdn) ptr.clean() ptr.save() self.assertRaises(ValidationError, self.do_add, **kwargs) def test1_bad_reverse_domain(self): mac = "11:22:33:44:55:66" label = "8888foo" domain = self.f_c ip_str = "115::" + mac kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} i = self.do_add(**kwargs) i.ip_str = "9111::" self.assertRaises(ValidationError, i.clean) def test1_no_system(self): mac = "15:22:33:44:55:66" label = "8888foo" domain = self.f_c ip_str = "188::" + mac ip_type = '6' r = StaticInterface(label=label, domain=domain, ip_str=ip_str, ip_type=ip_type, system=None) self.assertRaises(ValidationError, r.clean)
class StaticInterTests(TestCase): def create_domain(self, name, ip_type=None, delegated=False): if ip_type is None: ip_type = '4' if name in ('arpa', 'in-addr.arpa', 'ip6.arpa'): pass else: name = ip_to_domain_name(name, ip_type=ip_type) d = Domain(name=name, delegated=delegated) d.clean() self.assertTrue(d.is_reverse) return d def setUp(self): self.arpa = self.create_domain(name='arpa') self.arpa.save() self.i_arpa = self.create_domain(name='in-addr.arpa') self.i_arpa.save() self.c = Domain(name="ccc") self.c.save() self.f_c = Domain(name="foo.ccc") self.f_c.save() self.r1 = self.create_domain(name="10") self.r1.save() self.r2 = self.create_domain(name="128") self.r2.save() self.n = System() self.n.clean() self.n.save() View.objects.get_or_create(name="private") def do_add(self, mac, label, domain, ip_str, ip_type='4'): r = StaticInterface(mac=mac, label=label, domain=domain, ip_str=ip_str, ip_type=ip_type, system=self.n) r.clean() r.save() r.details() r.get_edit_url() r.get_delete_url() r.get_absolute_url() repr(r) return r def do_delete(self, r): ip_str = r.ip_str fqdn = r.fqdn r.delete() self.assertFalse( AddressRecord.objects.filter(ip_str=ip_str, fqdn=fqdn)) def test1_create_basic(self): mac = "11:22:33:44:55:66" label = "foo" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} i = self.do_add(**kwargs) i.update_attrs() self.assertEqual('None', i.interface_name()) i.attrs.interface_type = "eth" self.assertEqual('None', i.interface_name()) i.attrs.primary = "0" self.assertEqual('eth0', i.interface_name()) i.attrs.alias = "0" self.assertEqual('eth0.0', i.interface_name()) i.clean() def bad_assign(): i.attrs.interface_type = "wee" self.assertRaises(ValidationError, bad_assign) def bad_assign1(): i.attrs.primary = "wee" self.assertRaises(ValidationError, bad_assign1) def bad_assign2(): i.attrs.alias = "wee" self.assertRaises(ValidationError, bad_assign2) def test2_create_basic(self): mac = "11:22:33:44:55:66" label = "foo1" domain = self.f_c ip_str = "10.0.0.1" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} i = self.do_add(**kwargs) self.assertEqual(self.r1, i.reverse_domain) i.dhcp_enabled = False i.clean() i.save() i2 = StaticInterface.objects.get(pk=i.pk) self.assertFalse(i2.dhcp_enabled) self.assertEqual(self.r1, i2.reverse_domain) i.dhcp_enabled = True i.clean() i.save() i3 = StaticInterface.objects.get(pk=i.pk) self.assertTrue(i3.dhcp_enabled) def test3_create_basic(self): mac = "11:22:33:44:55:66" label = "foo1" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add(**kwargs) def test4_create_basic(self): mac = "12:22:33:44:55:66" label = "foo1" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add(**kwargs) def test5_create_basic(self): mac = "00:00:00:00:00:00" label = "foo1" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add(**kwargs) # Change the mac by one. mac = "00:00:00:00:00:01" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add(**kwargs) def test6_create_basic(self): mac = "11:22:33:44:55:66" label = "foo1" domain = self.f_c ip_str = "128.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} i = self.do_add(**kwargs) self.assertEqual(self.r2, i.reverse_domain) def test1_delete(self): mac = "12:22:33:44:55:66" label = "foo1" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} r = self.do_add(**kwargs) self.do_delete(r) def test1_dup_create_basic(self): mac = "11:22:33:44:55:66" label = "foo3" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add(**kwargs) self.assertRaises(ValidationError, self.do_add, **kwargs) def test1_bad_add_for_a_ptr(self): # Intr exists, then try ptr and A mac = "11:22:33:44:55:66" label = "9988food" domain = self.c ip_str = "10.0.0.1" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} ip_type = '4' i = self.do_add(**kwargs) i.clean() i.save() a = AddressRecord(label=label, domain=domain, ip_str=ip_str, ip_type=ip_type) self.assertRaises(ValidationError, a.clean) ptr = PTR(ip_str=ip_str, ip_type=ip_type, name=i.fqdn) self.assertRaises(ValidationError, ptr.clean) def test2_bad_add_for_a_ptr(self): # PTR and A exist, then try add intr mac = "11:22:33:44:55:66" label = "9988fdfood" domain = self.c ip_str = "10.0.0.1" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} ip_type = '4' a = AddressRecord(label=label, domain=domain, ip_str=ip_str, ip_type=ip_type) a.clean() a.save() ptr = PTR(ip_str=ip_str, ip_type=ip_type, name=a.fqdn) ptr.clean() ptr.save() self.assertRaises(ValidationError, self.do_add, **kwargs) def test1_bad_reverse_domain(self): mac = "11:22:33:44:55:66" label = "8888foo" domain = self.f_c ip_str = "10.0.0.1" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} i = self.do_add(**kwargs) i.ip_str = "9.0.0.1" self.assertRaises(ValidationError, i.clean) def test1_no_system(self): mac = "15:22:33:44:55:66" label = "8888foo" domain = self.f_c ip_str = "10.0.0.1" ip_type = '4' r = StaticInterface(label=label, domain=domain, ip_str=ip_str, ip_type=ip_type, system=None, mac=mac) self.assertRaises(ValidationError, r.clean)
class PTRStaticRegTests(TestCase): def create_domain(self, name, ip_type=None, delegated=False): if ip_type is None: ip_type = '4' if name in ('arpa', 'in-addr.arpa', 'ip6.arpa'): pass else: name = ip_to_domain_name(name, ip_type=ip_type) d = Domain(name=name, delegated=delegated) d.clean() self.assertTrue(d.is_reverse) return d def setUp(self): self.arpa = self.create_domain(name='arpa') self.arpa.save() self.i_arpa = self.create_domain(name='in-addr.arpa') self.i_arpa.save() self.c = Domain(name="ccc") self.c.save() self.f_c = Domain(name="foo.ccc") self.f_c.save() self.r1 = self.create_domain(name="10") self.r1.save() self.n = System() self.n.clean() self.n.save() def do_add_intr(self, mac, label, domain, ip_str, ip_type='4'): r = StaticInterface(mac=mac, label=label, domain=domain, ip_str=ip_str, ip_type=ip_type, system=self.n) r.clean() r.save() repr(r) return r def do_add_ptr(self, label, domain, ip_str, ip_type='4'): ptr = PTR(name=label + '.' + domain.name, ip_str=ip_str, ip_type=ip_type) ptr.clean() ptr.save() return ptr def test1_conflict_add_intr_first(self): # PTRdd an intr and make sure PTR can't exist. mac = "11:22:33:44:55:66" label = "foo4" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add_intr(**kwargs) kwargs = {'label': label, 'domain': domain, 'ip_str': ip_str} self.assertRaises(ValidationError, self.do_add_ptr, **kwargs) def test1_conflict_add_PTR_first(self): # Add an PTR and make sure an intr can't exist. mac = "11:22:33:44:55:66" label = "foo5" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add_ptr(**kwargs) kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} self.assertRaises(ValidationError, self.do_add_intr, **kwargs) def test2_conflict_add_intr_first(self): # Add an intr and update an existing PTR to conflict. Test for # exception. mac = "12:22:33:44:55:66" label = "fo99" domain = self.f_c ip_str = "10.0.0.2" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add_intr(**kwargs) ip_str = "10.0.0.3" kwargs = {'label': label, 'domain': domain, 'ip_str': ip_str} ptr = self.do_add_ptr(**kwargs) ptr.ip_str = "10.0.0.2" self.assertRaises(ValidationError, ptr.clean) def test2_conflict_add_A_first(self): # Add an PTR and update and existing intr to conflict. Test for # exception. mac = "11:22:33:44:55:66" label = "foo98" domain = self.f_c ip_str = "10.0.0.2" # Add PTR kwargs = {'label': label, 'domain': domain, 'ip_str': ip_str} self.do_add_ptr(**kwargs) # Add Intr with diff IP ip_str = "10.0.0.3" kwargs = {'mac': mac, 'label': label, 'domain': domain, 'ip_str': ip_str} intr = self.do_add_intr(**kwargs) # Conflict the IP on the intr intr.ip_str = "10.0.0.2" self.assertRaises(ValidationError, intr.save)