From 742d948e76c8128540d21b792b1c3b74fba7da4f Mon Sep 17 00:00:00 2001 From: Arthur Vuillard Date: Thu, 11 May 2017 15:29:03 +0200 Subject: [PATCH] fix tests for modoboa.admin in python2 --- modoboa/admin/forms/export.py | 4 ++-- modoboa/admin/management/commands/subcommands/_repair.py | 3 ++- modoboa/admin/tests/test_domain.py | 7 ++++--- modoboa/admin/views/export.py | 9 +++++++-- modoboa/admin/views/import_.py | 7 +++++-- 5 files changed, 20 insertions(+), 10 deletions(-) diff --git a/modoboa/admin/forms/export.py b/modoboa/admin/forms/export.py index 049b451cb..25e9402a3 100644 --- a/modoboa/admin/forms/export.py +++ b/modoboa/admin/forms/export.py @@ -25,12 +25,12 @@ class ExportDataForm(forms.Form): def clean_sepchar(self): if self.cleaned_data["sepchar"] == "": return ";" - return str(self.cleaned_data["sepchar"]) + return self.cleaned_data["sepchar"] def clean_filename(self): if self.cleaned_data["filename"] == "": return self.fields["filename"].initial - return str(self.cleaned_data["filename"]) + return self.cleaned_data["filename"] class ExportDomainsForm(ExportDataForm): diff --git a/modoboa/admin/management/commands/subcommands/_repair.py b/modoboa/admin/management/commands/subcommands/_repair.py index b7198bbd6..1406b683d 100644 --- a/modoboa/admin/management/commands/subcommands/_repair.py +++ b/modoboa/admin/management/commands/subcommands/_repair.py @@ -4,6 +4,7 @@ from __future__ import print_function, unicode_literals from django.conf import settings from django.core.management.base import BaseCommand +from django.utils.encoding import smart_str from modoboa.lib.permissions import grant_access_to_object from modoboa.lib.permissions import get_object_owner @@ -112,7 +113,7 @@ class Repair(BaseCommand): # Load known problems from extensions. for ext in settings.MODOBOA_APPS: try: - __import__(ext, locals(), globals(), ["known_problems"]) + __import__(ext, locals(), globals(), [smart_str("known_problems")]) except ImportError: pass for func in known_problems: diff --git a/modoboa/admin/tests/test_domain.py b/modoboa/admin/tests/test_domain.py index 907472906..0a7d64f57 100644 --- a/modoboa/admin/tests/test_domain.py +++ b/modoboa/admin/tests/test_domain.py @@ -236,11 +236,12 @@ class DomainTestCase(ModoTestCase): url = reverse("core:dashboard") response = self.client.get(url) self.assertEqual(response.status_code, 200) - self.assertIn("Global statistics", response.content) + self.assertIn("Global statistics", response.content.decode('utf-8')) self.client.force_login( User.objects.get(username="admin@test.com")) response = self.client.get(url) self.assertEqual(response.status_code, 200) - self.assertNotIn("Global statistics", response.content) - self.assertIn("Per-domain statistics", response.content) + content = response.content.decode('utf-8') + self.assertNotIn("Global statistics", content) + self.assertIn("Per-domain statistics", content) diff --git a/modoboa/admin/views/export.py b/modoboa/admin/views/export.py index 57edc87bf..1044a9e29 100644 --- a/modoboa/admin/views/export.py +++ b/modoboa/admin/views/export.py @@ -14,6 +14,7 @@ from django.core.urlresolvers import reverse from django.http import HttpResponse from django.shortcuts import render from django.utils.translation import ugettext as _ +from django.utils.encoding import smart_str from ..forms import ExportIdentitiesForm, ExportDomainsForm from ..lib import get_domains, get_identities @@ -50,7 +51,9 @@ def export_identities(request): form = ExportIdentitiesForm(request.POST) form.is_valid() fp = io.BytesIO() - csvwriter = csv.writer(fp, delimiter=form.cleaned_data["sepchar"]) + csvwriter = csv.writer( + fp, delimiter=smart_str(form.cleaned_data["sepchar"]) + ) identities = get_identities( request.user, **request.session['identities_filters']) for ident in identities: @@ -78,7 +81,9 @@ def export_domains(request): form = ExportDomainsForm(request.POST) form.is_valid() fp = io.BytesIO() - csvwriter = csv.writer(fp, delimiter=form.cleaned_data["sepchar"]) + csvwriter = csv.writer( + fp, delimiter=smart_str(form.cleaned_data["sepchar"]) + ) for dom in get_domains(request.user, **request.session['domains_filters']): dom.to_csv(csvwriter) diff --git a/modoboa/admin/views/import_.py b/modoboa/admin/views/import_.py index 1bf5f78d2..951ae5940 100644 --- a/modoboa/admin/views/import_.py +++ b/modoboa/admin/views/import_.py @@ -11,6 +11,7 @@ from django.core.urlresolvers import reverse from django.db import transaction from django.shortcuts import render from django.utils.translation import ugettext as _ +from django.utils.encoding import smart_str from reversion import revisions as reversion @@ -36,8 +37,10 @@ def importdata(request, formclass=ImportDataForm): form = formclass(request.POST, request.FILES) if form.is_valid(): try: - reader = csv.reader(request.FILES['sourcefile'], - delimiter=form.cleaned_data['sepchar']) + reader = csv.reader( + request.FILES['sourcefile'], + delimiter=smart_str(form.cleaned_data['sepchar']) + ) except csv.Error as inst: error = str(inst)