def test_update_delete_simple_rr_set(self): with self.assertPdnsSimpleRRSetUpdate(), PDNSChangeTracker(): rr = self.simple_rr_set.records.all()[0] rr.content = self.ALT_CONTENT_VALUES[0] rr.save() rr.delete()
def test_update_full_rr_set_partially(self): with self.assertPdnsFullRRSetUpdate(), PDNSChangeTracker(): rr = self.full_rr_set.records.all()[0] rr.content = self.ALT_CONTENT_VALUES[0] rr.save()
def test_delete_simple_rr_set(self): with self.assertPdnsSimpleRRSetUpdate(), PDNSChangeTracker(): self.simple_rr_set.records.all()[0].delete()
def perform_create(self, serializer): with PDNSChangeTracker(): super().perform_create(serializer)
def perform_destroy(self, instance): with PDNSChangeTracker(): super().perform_destroy(instance)
def test_create_in_empty_rr_set(self): with self.assertPdnsEmptyRRSetUpdate(), PDNSChangeTracker(): RR(content=self.CONTENT_VALUES[0], rrset=self.empty_rr_set).save()
def test_create_multiple_in_full_rr_set(self): with self.assertPdnsFullRRSetUpdate(), PDNSChangeTracker(): for content in self.ALT_CONTENT_VALUES: RR(content=content, rrset=self.full_rr_set).save()
def test_full_domain_delete_single(self): index = (self.rr_sets[0].type, self.rr_sets[0].subname, self.rr_sets[0].ttl) with self.assertPdnsZoneUpdate(self.full_domain.name, [self.TEST_DATA[index]]), PDNSChangeTracker(): self.rr_sets[0].delete()
def test_full_domain_delete_multiple(self): data = self.TEST_DATA empty_data = {key: [] for key, value in data.items()} with self.assertPdnsZoneUpdate(self.full_domain.name, empty_data), PDNSChangeTracker(): for type_, subname, _ in data.keys(): self.full_domain.rrset_set.get(subname=subname, type=type_).delete()
def test_empty_domain_create_many_meaty(self): with self.assertPdnsZoneUpdate(self.empty_domain.name, self.empty_domain.rrset_set), PDNSChangeTracker(): self._create_rr_sets(self.TEST_DATA, self.empty_domain)
def test_empty_domain_delete(self): with PDNSChangeTracker(): self._create_rr_sets(self.TEST_DATA, self.empty_domain) for rr_set in self.empty_domain.rrset_set.all(): rr_set.delete()
def test_empty_domain_create_many_empty(self): with PDNSChangeTracker(): empty_test_data = {key: [] for key, value in self.TEST_DATA.items()} self._create_rr_sets(empty_test_data, self.empty_domain)
def test_full_domain_create_single_empty(self): with PDNSChangeTracker(): RRset.objects.create(domain=self.full_domain, subname='', ttl=60, type='A')
def test_rrset_does_not_exist_exception(self): tracker = PDNSChangeTracker() tracker.__enter__() tracker._rr_set_updated(RRset(domain=self.empty_domain, subname='', type='A')) with self.assertRaises(ValueError): tracker.__exit__(None, None, None)
def test_delete_create_empty_domain(self): with PDNSChangeTracker(): name = self.empty_domain.name self.empty_domain.delete() self.empty_domain = Domain.objects.create(name=name, owner=self.user)
def test_update_type(self): with PDNSChangeTracker(): self.rr_sets[0].type = 'PTR' self.rr_sets[0].save()
def test_delete_create_full_domain(self): name = self.full_domain.name with self.assertPdnsZoneUpdate(name, []), PDNSChangeTracker(): self.full_domain.delete() self.full_domain = Domain.objects.create(name=name, owner=self.user)
def test_update_subname(self): with PDNSChangeTracker(): self.rr_sets[0].subname = '*.baz.foobar.ugly' self.rr_sets[0].save()
def test_create_in_simple_rr_set(self): with self.assertPdnsSimpleRRSetUpdate(), PDNSChangeTracker(): RR(content=self.CONTENT_VALUES[1], rrset=self.simple_rr_set).save()
def test_update_domain(self): for domain in self.domains: with PDNSChangeTracker(): domain.owner = self.admin domain.published = timezone.now() domain.save()
def test_create_domain_under_public_suffix_with_private_parent(self): name = 'amazonaws.com' with self.assertPdnsRequests(self.requests_desec_domain_creation(name)[:-1]), PDNSChangeTracker(): Domain(owner=self.create_user(), name=name).save() self.assertTrue(Domain.objects.filter(name=name).exists()) # If amazonaws.com is owned by another user, we cannot register test.s4.amazonaws.com name = 'test.s4.amazonaws.com' response = self.client.post(self.reverse('v1:domain-list'), {'name': name}) self.assertStatus(response, status.HTTP_400_BAD_REQUEST) self.assertEqual(response.data['name'][0].code, 'name_unavailable') # s3.amazonaws.com is a public suffix. Therefore, test.s3.amazonaws.com can be # registered even if the parent zone amazonaws.com is owned by another user name = 'test.s3.amazonaws.com' psl_cm = self.get_psl_context_manager('s3.amazonaws.com') with psl_cm, self.assertPdnsRequests(self.requests_desec_domain_creation(name)): response = self.client.post(self.reverse('v1:domain-list'), {'name': name}) self.assertStatus(response, status.HTTP_201_CREATED)
def test_update_empty_domain_name(self): new_name = self.random_domain_name() with PDNSChangeTracker(): # no exception, no requests self.empty_domain.name = new_name self.empty_domain.save()
def perform_create(self, serializer): with PDNSChangeTracker(): domain = serializer.save(owner=self.request.user) # TODO this line raises if the local public suffix is not in our database! PDNSChangeTracker.track(lambda: self.auto_delegate(domain))
def test_delete_single(self): for domain in self.domains: with self.assertPdnsRequests(self.requests_desec_domain_deletion(domain)), PDNSChangeTracker(): domain.delete()
def perform_update(self, serializer): with PDNSChangeTracker(): serializer.save()
def test_delete_multiple(self): with self.assertPdnsRequests([ self.requests_desec_domain_deletion(domain) for domain in reversed(self.domains) ], expect_order=False), PDNSChangeTracker(): for domain in self.domains: domain.delete()
def test_update_full_rr_set_completely(self): with self.assertPdnsFullRRSetUpdate(), PDNSChangeTracker(): for i, rr in enumerate(self.full_rr_set.records.all()): rr.content = self.ALT_CONTENT_VALUES[i] rr.save()
def test_create_delete(self): with PDNSChangeTracker(): d = Domain.objects.create(name=self.random_domain_name(), owner=self.user) d.delete()
def test_delete_full_rr_set_partially(self): with self.assertPdnsFullRRSetUpdate(), PDNSChangeTracker(): for rr in self.full_rr_set.records.all()[1:2]: rr.delete()
def test_create_update_full_rr_set(self): with self.assertPdnsFullRRSetUpdate(), PDNSChangeTracker(): for i, rr in enumerate(self.full_rr_set.records.all()): rr.content = self.ALT_CONTENT_VALUES[i] rr.save() RR.objects.create(rrset=self.full_rr_set, content=self.CONTENT_VALUES[0])