From f2d5dd229ff1ce12ff0c3c8d68b3da8fa06a64f6 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Wed, 2 Mar 2016 16:15:09 +0100 Subject: [PATCH] Increase coverage. see #832 --- modoboa/admin/models/mailbox.py | 5 ++--- modoboa/admin/serializers.py | 2 +- modoboa/admin/tests/account.py | 3 +-- modoboa/admin/tests/api.py | 16 ++++++++++++++++ 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/modoboa/admin/models/mailbox.py b/modoboa/admin/models/mailbox.py index a061042e1..1cd620197 100644 --- a/modoboa/admin/models/mailbox.py +++ b/modoboa/admin/models/mailbox.py @@ -290,9 +290,8 @@ class Mailbox(AdminObject): newaddress = self.user.username if newaddress is not None: local_part, domname = split_mailbox(newaddress) - try: - domain = Domain.objects.get(name=domname) - except Domain.DoesNotExist: + domain = Domain.objects.filter(name=domname).first() + if domain is None: raise lib_exceptions.NotFound(_("Domain does not exist")) if not user.can_access(domain): raise lib_exceptions.PermDeniedException diff --git a/modoboa/admin/serializers.py b/modoboa/admin/serializers.py index ed66ffb24..5acfe858e 100644 --- a/modoboa/admin/serializers.py +++ b/modoboa/admin/serializers.py @@ -146,7 +146,7 @@ class CreateAccountSerializer(AccountSerializer): if mailbox_data: creator = self.context["request"].user if instance.mailbox: - # FIXME: compat, to remove. + # FIXME: compat, to remove ASAP. mailbox_data["email"] = mailbox_data["full_address"] instance.mailbox.update_from_dict(creator, mailbox_data) else: diff --git a/modoboa/admin/tests/account.py b/modoboa/admin/tests/account.py index 1ea5457e8..6a7a2e1ba 100644 --- a/modoboa/admin/tests/account.py +++ b/modoboa/admin/tests/account.py @@ -44,8 +44,7 @@ class AccountTestCase(ModoTestCase): alias__internal=True).exists() ) - values.update({ - "username": "pouet@test.com", "email": "pouet@test.com"}) + values.update({"username": "pouet@test.com"}) self.ajax_post( reverse("admin:account_change", args=[account.id]), values ) diff --git a/modoboa/admin/tests/api.py b/modoboa/admin/tests/api.py index 358d2c972..2724072c2 100644 --- a/modoboa/admin/tests/api.py +++ b/modoboa/admin/tests/api.py @@ -211,6 +211,22 @@ class AccountAPITestCase(ModoAPITestCase): account.refresh_from_db() self.assertEqual(account.email, account.mailbox.full_address) + def test_update_account_wrong_address(self): + """Try to update an account.""" + account = core_models.User.objects.get(username="user@test.com") + url = reverse("external_api:account-detail", args=[account.pk]) + data = { + "username": "fromapi@test3.com", + "role": account.role, + "password": "Toto1234", + "mailbox": { + "full_address": "fromapi@test3.com", + "quota": account.mailbox.quota + } + } + response = self.client.put(url, data, format="json") + self.assertEqual(response.status_code, 404) + def test_delete_account(self): """Try to delete an account.""" account = core_models.User.objects.get(username="user@test.com")