diff --git a/modoboa/admin/serializers.py b/modoboa/admin/serializers.py index 3827ec139..878df8b05 100644 --- a/modoboa/admin/serializers.py +++ b/modoboa/admin/serializers.py @@ -5,6 +5,7 @@ from __future__ import unicode_literals from django.core.exceptions import ValidationError from django.shortcuts import get_object_or_404 from django.utils.translation import ugettext as _, ugettext_lazy +from django.utils.encoding import force_text from rest_framework import serializers from passwords import validators @@ -77,7 +78,7 @@ class DomainAliasSerializer(serializers.ModelSerializer): object_type="domain_aliases") except lib_exceptions.ModoboaException as inst: raise serializers.ValidationError({ - "domain": unicode(inst)}) + "domain": force_text(inst)}) domain_alias.save(creator=creator) return domain_alias @@ -254,7 +255,7 @@ class WritableAccountSerializer(AccountSerializer): object_type="mailboxes") except lib_exceptions.ModoboaException as inst: raise serializers.ValidationError({ - "domain": unicode(inst)}) + "domain": force_text(inst)}) quota = data.pop("quota", None) mb = admin_models.Mailbox( user=account, address=address, domain=domain, **data) @@ -347,7 +348,7 @@ class AliasSerializer(serializers.ModelSerializer): sender=self.__class__, context=self.domain, object_type="mailbox_aliases") except lib_exceptions.ModoboaException as inst: - raise serializers.ValidationError(unicode(inst)) + raise serializers.ValidationError(force_text(inst)) recipients = validated_data.pop("recipients", None) alias = admin_models.Alias(domain=self.domain, **validated_data) alias.save(creator=creator) diff --git a/modoboa/limits/tests/test_api.py b/modoboa/limits/tests/test_api.py index d671c0c2c..ecfbe9d8f 100644 --- a/modoboa/limits/tests/test_api.py +++ b/modoboa/limits/tests/test_api.py @@ -114,7 +114,7 @@ class APIAdminLimitsTestCase(lib_tests.ModoAPITestCase): response = self.client.post(url, data, format="json") self.assertEqual(response.status_code, 400) self.assertEqual( - response.content, + response.content.decode(), '"You\'re not allowed to define unlimited values"') def test_domain_aliases_limit(self): diff --git a/modoboa/limits/tests/test_import.py b/modoboa/limits/tests/test_import.py index 7f8e4603f..dc743b438 100644 --- a/modoboa/limits/tests/test_import.py +++ b/modoboa/limits/tests/test_import.py @@ -31,7 +31,7 @@ class LimitImportTestCase(ModoTestCase): """Check domain aliases limit.""" self.client.force_login(self.reseller) self.assertFalse(limit.is_exceeded()) - f = ContentFile(b"""domainalias; domalias1.com; {domain}; True + f = ContentFile("""domainalias; domalias1.com; {domain}; True domainalias; domalias2.com; {domain}; True """.format(domain=self.domain), name="domains.csv") self.client.post( @@ -70,7 +70,7 @@ domainalias; domalias2.com; {domain}; True ) self.assertTrue(limit.is_exceeded()) - f = ContentFile(b"""account; admin3@{domain}; toto; User; One; True; DomainAdmins; admin3@{domain}; 5; {domain} + f = ContentFile("""account; admin3@{domain}; toto; User; One; True; DomainAdmins; admin3@{domain}; 5; {domain} """.format(domain=self.domain), name="domain_admins.csv") response = self.client.post( reverse("admin:identity_import"), { @@ -111,7 +111,7 @@ account; user3@{domain}; toto; User; One; True; SimpleUsers; user3@{domain}; 5 """Check mailbox aliases limit.""" self.client.force_login(self.dadmin) self.assertFalse(limit.is_exceeded()) - f = ContentFile(b"""alias; alias1@{domain}; True; user@{domain} + f = ContentFile("""alias; alias1@{domain}; True; user@{domain} alias; alias2@{domain}; True; user@{domain} """.format(domain=self.domain), name="aliases.csv") response = self.client.post(