Skip to content

Commit fbf45db

Browse files
committed
Merge pull request #520 from helgi/test_cert
chore(tests): verify that deleting a certificate detaches it from connected domains
2 parents 47dd869 + 48d6e10 commit fbf45db

1 file changed

Lines changed: 51 additions & 0 deletions

File tree

rootfs/api/tests/test_certificate_use_case_1.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,57 @@ def test_delete_certificate(self):
154154
name=self.name,
155155
certificate=self.cert
156156
)
157+
157158
url = '/v2/certs/{}'.format(self.name)
158159
response = self.client.delete(url, HTTP_AUTHORIZATION='token {}'.format(self.token))
159160
self.assertEqual(response.status_code, 204)
161+
162+
def test_delete_certificate_with_attached_domain(self):
163+
"""
164+
Destroy a certificate with attached domain.
165+
Domain should not have assigned cert anymore
166+
"""
167+
# Create certificate
168+
response = self.client.post(
169+
self.url,
170+
json.dumps({
171+
'name': self.name,
172+
'certificate': self.cert,
173+
'key': self.key
174+
}),
175+
content_type='application/json',
176+
HTTP_AUTHORIZATION='token {}'.format(self.token)
177+
)
178+
self.assertEqual(response.status_code, 201)
179+
180+
# Attach domain to certificate
181+
response = self.client.post(
182+
'{}/{}/domain/'.format(self.url, self.name),
183+
json.dumps({
184+
'domain': str(self.domain)
185+
}),
186+
content_type='application/json',
187+
HTTP_AUTHORIZATION='token {}'.format(self.token)
188+
)
189+
self.assertEqual(response.status_code, 201)
190+
191+
# Assert data from cert side
192+
response = self.client.get(
193+
'{}/{}'.format(self.url, self.name),
194+
HTTP_AUTHORIZATION='token {}'.format(self.token)
195+
)
196+
self.assertEqual(response.status_code, 200)
197+
self.assertEqual(response.data['domains'], [str(self.domain)])
198+
199+
# Assert data from domain side
200+
domain = Domain.objects.get(id=self.domain.id)
201+
self.assertEqual(domain.certificate.name, self.name)
202+
203+
# Delete certificate
204+
url = '/v2/certs/{}'.format(self.name)
205+
response = self.client.delete(url, HTTP_AUTHORIZATION='token {}'.format(self.token))
206+
self.assertEqual(response.status_code, 204)
207+
208+
# verify certificate is not attached to domain anymore
209+
domain = Domain.objects.get(id=self.domain.id)
210+
self.assertEqual(domain.certificate, None)

0 commit comments

Comments
 (0)