Ejemplo n.º 1
0
 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()
Ejemplo n.º 2
0
 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()
Ejemplo n.º 3
0
 def test_delete_simple_rr_set(self):
     with self.assertPdnsSimpleRRSetUpdate(), PDNSChangeTracker():
         self.simple_rr_set.records.all()[0].delete()
Ejemplo n.º 4
0
 def perform_create(self, serializer):
     with PDNSChangeTracker():
         super().perform_create(serializer)
Ejemplo n.º 5
0
 def perform_destroy(self, instance):
     with PDNSChangeTracker():
         super().perform_destroy(instance)
Ejemplo n.º 6
0
 def test_create_in_empty_rr_set(self):
     with self.assertPdnsEmptyRRSetUpdate(), PDNSChangeTracker():
         RR(content=self.CONTENT_VALUES[0], rrset=self.empty_rr_set).save()
Ejemplo n.º 7
0
 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()
Ejemplo n.º 8
0
 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()
Ejemplo n.º 9
0
 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()
Ejemplo n.º 10
0
 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)
Ejemplo n.º 11
0
 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()
Ejemplo n.º 12
0
 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)
Ejemplo n.º 13
0
 def test_full_domain_create_single_empty(self):
     with PDNSChangeTracker():
         RRset.objects.create(domain=self.full_domain, subname='', ttl=60, type='A')
Ejemplo n.º 14
0
 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)
Ejemplo n.º 15
0
 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)
Ejemplo n.º 16
0
 def test_update_type(self):
     with PDNSChangeTracker():
         self.rr_sets[0].type = 'PTR'
         self.rr_sets[0].save()
Ejemplo n.º 17
0
 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)
Ejemplo n.º 18
0
 def test_update_subname(self):
     with PDNSChangeTracker():
         self.rr_sets[0].subname = '*.baz.foobar.ugly'
         self.rr_sets[0].save()
Ejemplo n.º 19
0
 def test_create_in_simple_rr_set(self):
     with self.assertPdnsSimpleRRSetUpdate(), PDNSChangeTracker():
         RR(content=self.CONTENT_VALUES[1], rrset=self.simple_rr_set).save()
Ejemplo n.º 20
0
 def test_update_domain(self):
     for domain in self.domains:
         with PDNSChangeTracker():
             domain.owner = self.admin
             domain.published = timezone.now()
             domain.save()
Ejemplo n.º 21
0
    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)
Ejemplo n.º 22
0
 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()
Ejemplo n.º 23
0
    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))
Ejemplo n.º 24
0
 def test_delete_single(self):
     for domain in self.domains:
         with self.assertPdnsRequests(self.requests_desec_domain_deletion(domain)), PDNSChangeTracker():
             domain.delete()
Ejemplo n.º 25
0
 def perform_update(self, serializer):
     with PDNSChangeTracker():
         serializer.save()
Ejemplo n.º 26
0
 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()
Ejemplo n.º 27
0
 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()
Ejemplo n.º 28
0
 def test_create_delete(self):
     with PDNSChangeTracker():
         d = Domain.objects.create(name=self.random_domain_name(), owner=self.user)
         d.delete()
Ejemplo n.º 29
0
 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()
Ejemplo n.º 30
0
 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])