@@ -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