diff --git a/modoboa/admin/api.py b/modoboa/admin/api.py index cab177d6a..2235ba2f1 100644 --- a/modoboa/admin/api.py +++ b/modoboa/admin/api.py @@ -16,3 +16,7 @@ class DomainViewSet(viewsets.ModelViewSet): def get_queryset(self): """Filter queryset based on current user.""" return models.Domain.objects.get_for_admin(self.request.user) + + def perform_destroy(self, instance): + """Add custom args to delete call.""" + instance.delete(self.request.user) diff --git a/modoboa/admin/tests/__init__.py b/modoboa/admin/tests/__init__.py index bdc06b647..b950e511d 100644 --- a/modoboa/admin/tests/__init__.py +++ b/modoboa/admin/tests/__init__.py @@ -2,6 +2,7 @@ from .account import AccountTestCase, PermissionsTestCase from .alias import AliasTestCase +from .api import APITestCase from .domain import DomainTestCase from .domain_alias import DomainAliasTestCase from .export import ExportTestCase @@ -13,6 +14,7 @@ from .user import ForwardTestCase __all__ = [ 'AccountTestCase', 'AliasTestCase', + 'APITestCase', 'DomainTestCase', 'DomainAliasTestCase', 'ExportTestCase', diff --git a/modoboa/admin/tests/api.py b/modoboa/admin/tests/api.py index f319ef24e..d6aa4c9b4 100644 --- a/modoboa/admin/tests/api.py +++ b/modoboa/admin/tests/api.py @@ -69,3 +69,11 @@ class APITestCase(ModoAPITestCase): response = self.client.put(url, {"name": "test42.com", "quota": 1000}) self.assertEqual(response.status_code, 200) + + def test_delete_domain(self): + """Try to delete a domain.""" + domain = models.Domain.objects.get(name="test.com") + url = reverse("external_api:domain-detail", args=[domain.pk]) + response = self.client.delete(url) + self.assertEqual(response.status_code, 204) + self.assertFalse(models.Domain.objects.filter(pk=domain.pk).exists())