Merge pull request #1161 from modoboa/fix/api_account_update_no_mailbox

[admin] fixed account update API endpoint.
This commit is contained in:
Antoine Nguyen
2017-06-28 13:08:18 +02:00
committed by GitHub
2 changed files with 15 additions and 1 deletions
+1 -1
View File
@@ -293,7 +293,7 @@ class WritableAccountSerializer(AccountSerializer):
def update(self, instance, validated_data):
"""Update account and associated objects."""
mailbox_data = validated_data.pop("mailbox")
mailbox_data = validated_data.pop("mailbox", None)
password = validated_data.pop("password", None)
domains = validated_data.pop("domains", [])
for key, value in validated_data.items():
+14
View File
@@ -11,6 +11,7 @@ from django.core.urlresolvers import reverse
from rest_framework.authtoken.models import Token
from modoboa.admin import models as admin_models
from modoboa.core import factories as core_factories
from modoboa.core import models as core_models
from modoboa.lib.tests import ModoAPITestCase
@@ -358,6 +359,19 @@ class AccountAPITestCase(ModoAPITestCase):
account.refresh_from_db()
self.assertTrue(account.check_password("Toto1234"))
def test_update_account_with_no_mailbox(self):
"""Try to disable an account."""
account = core_factories.UserFactory(
username="reseller", groups=("Resellers", ))
url = reverse("api:account-detail", args=[account.pk])
data = {
"username": "reseller",
"role": account.role,
"is_active": False
}
response = self.client.put(url, data, format="json")
self.assertEqual(response.status_code, 200)
def test_patch_account(self):
"""Try to patch an account."""
account = core_models.User.objects.get(username="user@test.com")