unicode_literals everywhere and modoboa-admin deploy fixes

This commit is contained in:
Arthur Vuillard
2017-05-11 09:25:42 +02:00
parent 799e06bc2f
commit 615f73f272
182 changed files with 364 additions and 14 deletions
+2
View File
@@ -1,6 +1,8 @@
#!/usr/bin/env python
# coding: utf-8
from __future__ import unicode_literals
from modoboa.core.commands import handle_command_line
if __name__ == "__main__":
+1
View File
@@ -0,0 +1 @@
from __future__ import unicode_literals
+2
View File
@@ -1 +1,3 @@
from __future__ import unicode_literals
default_app_config = "modoboa.admin.apps.AdminConfig"
+2
View File
@@ -1,5 +1,7 @@
"""Admin API."""
from __future__ import unicode_literals
from django import http
from django.contrib.contenttypes.models import ContentType
+2
View File
@@ -1,5 +1,7 @@
"""Modoboa admin settings."""
from __future__ import unicode_literals
import os
from django import forms
+2
View File
@@ -1,5 +1,7 @@
"""AppConfig for admin."""
from __future__ import unicode_literals
from django.apps import AppConfig
from .app_settings import load_admin_settings
+2
View File
@@ -1,5 +1,7 @@
"""Admin constants."""
from __future__ import unicode_literals
DNSBL_PROVIDERS = [
"aspews.ext.sorbs.net",
"b.barracudacentral.org",
+3
View File
@@ -1,6 +1,9 @@
"""
Fixtures factories.
"""
from __future__ import unicode_literals
import factory
from modoboa.core.factories import PermissionFactory, UserFactory
+2
View File
@@ -1,3 +1,5 @@
from __future__ import unicode_literals
from .domain import (
DomainFormGeneral, DomainFormOptions, DomainForm, DomainWizard
)
+2
View File
@@ -1,5 +1,7 @@
"""Forms related to accounts management."""
from __future__ import unicode_literals
from collections import OrderedDict
from functools import reduce
+2
View File
@@ -1,5 +1,7 @@
"""Forms related to aliases management."""
from __future__ import unicode_literals
from collections import OrderedDict
from django import forms
+2
View File
@@ -1,5 +1,7 @@
"""Forms related to domains management."""
from __future__ import unicode_literals
from functools import reduce
from django import forms
+2
View File
@@ -1,3 +1,5 @@
from __future__ import unicode_literals
from django import forms
from django.utils.translation import ugettext_lazy
+2
View File
@@ -1,5 +1,7 @@
"""Forms related to forwards management."""
from __future__ import unicode_literals
from django import forms
from django.core import validators
from django.utils.translation import ugettext_lazy
+2
View File
@@ -1,5 +1,7 @@
"""Forms related to import operations."""
from __future__ import unicode_literals
from django import forms
from django.utils.translation import ugettext_lazy
+2
View File
@@ -1,5 +1,7 @@
"""Django signal handlers for admin."""
from __future__ import unicode_literals
from django.core.urlresolvers import reverse
from django.db.models import signals
from django.dispatch import receiver
+2
View File
@@ -2,6 +2,8 @@
"""Internal library for admin."""
from __future__ import unicode_literals
from functools import wraps
from itertools import chain
+1
View File
@@ -0,0 +1 @@
from __future__ import unicode_literals
@@ -0,0 +1 @@
from __future__ import unicode_literals
@@ -1,6 +1,6 @@
"""A management command to apply mailbox operations."""
from __future__ import print_function
from __future__ import unicode_literals, print_function
import logging
import os
@@ -1,5 +1,7 @@
"""Modoboa main management command."""
from __future__ import unicode_literals
from subcommand.base import SubcommandCommand
from .subcommands._mx import CheckMXRecords
@@ -0,0 +1 @@
from __future__ import unicode_literals
@@ -1,5 +1,7 @@
"""Django management command to export admin objects."""
from __future__ import unicode_literals
import csv
import sys
@@ -1,5 +1,7 @@
"""Django management command to import admin objects."""
from __future__ import unicode_literals
import csv
import os
@@ -1,6 +1,6 @@
"""Management command to check defined domains."""
from __future__ import print_function
from __future__ import print_function, unicode_literals
from datetime import timedelta
import ipaddress
@@ -1,6 +1,6 @@
"""Management command to check and fix known problems."""
from __future__ import print_function
from __future__ import print_function, unicode_literals
from django.conf import settings
from django.core.management.base import BaseCommand
+1
View File
@@ -0,0 +1 @@
from __future__ import unicode_literals
+2
View File
@@ -1,5 +1,7 @@
"""Admin models."""
from __future__ import unicode_literals
from .base import AdminObject
from .domain import Domain, MXRecord, DNSBLResult
from .domain_alias import DomainAlias
+2
View File
@@ -1,5 +1,7 @@
"""Models related to aliases management."""
from __future__ import unicode_literals
import hashlib
import random
+2
View File
@@ -1,5 +1,7 @@
"""Base admin models."""
from __future__ import unicode_literals
from django.db import models
from django.utils import timezone
+2
View File
@@ -1,5 +1,7 @@
"""Models related to domains management."""
from __future__ import unicode_literals
import datetime
from functools import reduce
+2
View File
@@ -1,5 +1,7 @@
"""Models related to domain aliases management."""
from __future__ import unicode_literals
from django.db import models
from django.utils.encoding import python_2_unicode_compatible, smart_text
from django.utils.translation import ugettext as _, ugettext_lazy
+2
View File
@@ -1,5 +1,7 @@
"""Models related to mailboxes management."""
from __future__ import unicode_literals
import os
import pwd
+2
View File
@@ -1,5 +1,7 @@
"""Map file definitions for postfix."""
from __future__ import unicode_literals
class DomainsMap(object):
+2
View File
@@ -1,5 +1,7 @@
"""Admin serializers."""
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
+2
View File
@@ -1,5 +1,7 @@
"""Modoboa admin signals."""
from __future__ import unicode_literals
import django.dispatch
check_extra_account_form = django.dispatch.Signal(
+1
View File
@@ -0,0 +1 @@
from __future__ import unicode_literals
+2
View File
@@ -1,5 +1,7 @@
"""Admin extension tags."""
from __future__ import unicode_literals
from functools import reduce
from django import template
+1
View File
@@ -0,0 +1 @@
from __future__ import unicode_literals
+2
View File
@@ -1,5 +1,7 @@
# coding: utf-8
from __future__ import unicode_literals
from unittest import skipIf
from django.core.urlresolvers import reverse
+2
View File
@@ -1,5 +1,7 @@
# coding: utf-8
from __future__ import unicode_literals
"""Admin test cases."""
from django.core.urlresolvers import reverse
+2
View File
@@ -1,6 +1,8 @@
# coding: utf-8
"""Admin API related tests."""
from __future__ import unicode_literals
import copy
import json
+2
View File
@@ -1,5 +1,7 @@
# coding: utf-8
from __future__ import unicode_literals
"""Domain related test cases."""
import json
+2
View File
@@ -1,5 +1,7 @@
# coding: utf-8
from __future__ import unicode_literals
from django.core.urlresolvers import reverse
from modoboa.lib.tests import ModoTestCase
+2
View File
@@ -1,5 +1,7 @@
"""Export related test cases."""
from __future__ import unicode_literals
from django.core.urlresolvers import reverse
from modoboa.lib.tests import ModoTestCase
+3
View File
@@ -1,4 +1,7 @@
# coding: utf-8
from __future__ import unicode_literals
from django.core.files.base import ContentFile
from django.core.urlresolvers import reverse
@@ -1,5 +1,7 @@
"""Management command tests."""
from __future__ import unicode_literals
import os
import shutil
import tempfile
+2
View File
@@ -1,5 +1,7 @@
"""Test map files generation."""
from __future__ import unicode_literals
import os
from django.conf import settings
+2
View File
@@ -1,5 +1,7 @@
"""DNSBL related tests."""
from __future__ import unicode_literals
from django.core import management
from django.core.urlresolvers import reverse
from django.test import override_settings
@@ -1,3 +1,5 @@
from __future__ import unicode_literals
from django.core.urlresolvers import reverse
from modoboa.core.models import User
+3
View File
@@ -1,4 +1,7 @@
"""Repair command tests"""
from __future__ import unicode_literals
from django.core import management
from modoboa.lib.permissions import get_object_owner
+2
View File
@@ -1,5 +1,7 @@
"""User related tests."""
from __future__ import unicode_literals
import json
from django.core.urlresolvers import reverse
+2
View File
@@ -1,6 +1,8 @@
# pylint: disable=invalid-name, protected-access
"""Admin urls."""
from __future__ import unicode_literals
from django.conf.urls import url
from . import views
+2
View File
@@ -1,5 +1,7 @@
"""Admin API urls."""
from __future__ import unicode_literals
from rest_framework import routers
from . import api
+2
View File
@@ -1,5 +1,7 @@
"""Shortcuts."""
from __future__ import unicode_literals
from .alias import AliasDetailView
from .identity import AccountDetailView
from .dns import DNSBLDomainDetailView, MXDomainDetailView
+2
View File
@@ -1,5 +1,7 @@
"""Alias related views."""
from __future__ import unicode_literals
from django.core.urlresolvers import reverse
from django.db import IntegrityError
from django.shortcuts import render
+2
View File
@@ -1,5 +1,7 @@
"""DNSBL related views."""
from __future__ import unicode_literals
from django.views import generic
from django.utils.translation import ugettext as _
+2
View File
@@ -1,5 +1,7 @@
"""Domain related views."""
from __future__ import unicode_literals
from functools import reduce
from django.core.urlresolvers import reverse
+2
View File
@@ -1,5 +1,7 @@
"""Export related views."""
from __future__ import unicode_literals
import csv
import io
+2
View File
@@ -1,5 +1,7 @@
"""Identity related views."""
from __future__ import unicode_literals
from django.shortcuts import render
from django.template.loader import render_to_string
from django.utils.translation import ugettext as _, ungettext
+2
View File
@@ -1,5 +1,7 @@
"""Import related views."""
from __future__ import unicode_literals
import csv
from django.contrib.auth.decorators import (
+2
View File
@@ -1,5 +1,7 @@
"""SimpleUsers views."""
from __future__ import unicode_literals
from django.template.loader import render_to_string
from django.utils.translation import ugettext as _
+2
View File
@@ -1,3 +1,5 @@
"""App config for core."""
from __future__ import unicode_literals
default_app_config = "modoboa.core.apps.CoreConfig"
+3
View File
@@ -1,4 +1,7 @@
# coding: utf-8
from __future__ import unicode_literals
from django import forms
from django.conf import settings
from django.utils.translation import ugettext as _, ugettext_lazy
+2
View File
@@ -1,5 +1,7 @@
"""Core config for admin."""
from __future__ import unicode_literals
from django.apps import AppConfig
from django.db.models import signals
from django.utils.translation import ugettext_lazy
+7 -2
View File
@@ -1,6 +1,6 @@
# coding: utf-8
from __future__ import print_function
from __future__ import unicode_literals, print_function
import argparse
import os
@@ -8,6 +8,7 @@ import sys
from django.conf import settings
from django.template import Context, Template
from django.utils import six
class Command(object):
@@ -65,8 +66,12 @@ def scan_for_commands(dirname=""):
if os.path.isfile(f):
continue
cmdname = f.replace(".py", "")
if six.PY2:
fromlist = [cmdname.encode()]
else:
fromlist = [cmdname]
cmdmod = __import__("modoboa.core.commands", globals(), locals(),
[cmdname])
fromlist)
cmdmod = getattr(cmdmod, cmdname)
if "_" in cmdname:
cmdclassname = "".join(
+7 -2
View File
@@ -2,7 +2,7 @@
"""A shortcut to deploy a fresh modoboa instance."""
from __future__ import print_function
from __future__ import unicode_literals, print_function
import getpass
import os
@@ -21,6 +21,7 @@ except ImportError:
import django
from django.core import management
from django.template import Context, Template
from django.utils import six
import dj_database_url
from modoboa.core.commands import Command
@@ -231,7 +232,11 @@ class DeployCommand(Command):
os.path.join(os.path.dirname(__file__), "../../bower_components")
)
mod = __import__(parsed_args.name, globals(), locals(), ['settings'])
if six.PY2:
fromlist = ['settings'.encode()]
else:
fromlist = ['settings']
mod = __import__(parsed_args.name, globals(), locals(), fromlist)
tpl = self._render_template(
"%s/settings.py.tpl" % self._templates_dir, {
'db_connections': connections,
+1 -1
View File
@@ -1,6 +1,6 @@
# coding: utf-8
from __future__ import print_function
from __future__ import unicode_literals, print_function
import sys
+2
View File
@@ -2,6 +2,8 @@
"""Core application constants."""
from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy
SIMPLEUSERS_ROLE = ("SimpleUsers", ugettext_lazy("Simple user"))
+2
View File
@@ -1,5 +1,7 @@
"""Custom context processors."""
from __future__ import unicode_literals
from functools import reduce
from . import signals
+3
View File
@@ -1,4 +1,7 @@
# Development settings
from __future__ import unicode_literals
import os
BOWER_COMPONENTS_ROOT = os.path.join(
+8 -1
View File
@@ -1,7 +1,10 @@
"""Extension management."""
from __future__ import unicode_literals
from django.conf import settings
from django.conf.urls import include, url
from django.utils import six
class ModoExtension(object):
@@ -76,7 +79,11 @@ class ExtensionsPool(object):
def load_extension(self, name):
"""Load a registered extension."""
__import__(name, locals(), globals(), ["modo_extension"])
if six.PY2:
fromlist = ["modo_extension".encode()]
else:
fromlist = ["modo_extension"]
__import__(name, locals(), globals(), fromlist)
extinstance = self.get_extension(name)
if extinstance is None:
return None
+2
View File
@@ -1,5 +1,7 @@
"""Factories for core application."""
from __future__ import unicode_literals
import factory
from django.contrib.auth.models import Group
+2
View File
@@ -2,6 +2,8 @@
"""Core forms."""
from __future__ import unicode_literals
from django import forms
from django.utils.translation import ugettext as _, ugettext_lazy
+2
View File
@@ -1,5 +1,7 @@
"""Modoboa core signal handlers."""
from __future__ import unicode_literals
import logging
from django.core.urlresolvers import reverse
+2
View File
@@ -1,3 +1,5 @@
from __future__ import unicode_literals
import logging
+1
View File
@@ -0,0 +1 @@
from __future__ import unicode_literals
@@ -0,0 +1 @@
from __future__ import unicode_literals
@@ -1,6 +1,6 @@
# coding: utf-8
from __future__ import print_function
from __future__ import print_function, unicode_literals
import datetime
import logging
@@ -1,5 +1,7 @@
"""Management command to communicate with public API."""
from __future__ import unicode_literals
from django.core.management.base import BaseCommand, CommandError
from modoboa.admin import models as admin_models
@@ -1,5 +1,5 @@
"""Management command to generate/update postfix map files."""
from __future__ import print_function
from __future__ import print_function, unicode_literals
import copy
import hashlib
@@ -5,6 +5,8 @@
"""
from __future__ import unicode_literals
from functools import reduce
from django.contrib.auth.models import Group
@@ -5,6 +5,8 @@ A simple managemenent command to update the default site.
See `https://docs.djangoproject.com/en/dev/ref/contrib/sites/`_.
"""
from __future__ import unicode_literals
from django.core.management.base import BaseCommand, CommandError
from django.contrib.sites.models import Site
+2
View File
@@ -1,5 +1,7 @@
"""Core middlewares."""
from __future__ import unicode_literals
from . import models
+1
View File
@@ -0,0 +1 @@
from __future__ import unicode_literals
+2
View File
@@ -1,5 +1,7 @@
"""Mocks used for testing."""
from __future__ import unicode_literals
import httmock
+2
View File
@@ -1,5 +1,7 @@
"""Core models."""
from __future__ import unicode_literals
from email.header import Header
import re
@@ -1,6 +1,9 @@
"""
Password hashers for Modoboa.
"""
from __future__ import unicode_literals
from modoboa.core.password_hashers.base import (
PLAINHasher, CRYPTHasher, MD5Hasher, SHA256Hasher
)
@@ -4,6 +4,8 @@ Advanced (ie. stronger) password hashers.
This module relies on `passlib` to provide more secure hashers.
"""
from __future__ import unicode_literals
from passlib.hash import bcrypt, md5_crypt, sha256_crypt, sha512_crypt
from modoboa.parameters import tools as param_tools
+2
View File
@@ -4,6 +4,8 @@ Base password hashers.
Contains weak hashers (the original ones) available with Modoboa.
"""
from __future__ import unicode_literals
import base64
import crypt
import hashlib
+2
View File
@@ -1,5 +1,7 @@
"""Modoboa core signals."""
from __future__ import unicode_literals
import django.dispatch
account_auto_created = django.dispatch.Signal(providing_args=["user"])
+1
View File
@@ -0,0 +1 @@
from __future__ import unicode_literals
+2
View File
@@ -1,6 +1,8 @@
# coding: utf-8
"""Custom tags for Core application."""
from __future__ import unicode_literals
from functools import reduce
import os
import pkg_resources
+1
View File
@@ -0,0 +1 @@
from __future__ import unicode_literals
@@ -0,0 +1 @@
from __future__ import unicode_literals
@@ -1,5 +1,7 @@
"""A stupid extension used for tests."""
from __future__ import unicode_literals
from modoboa.core import extensions
@@ -0,0 +1 @@
from __future__ import unicode_literals
@@ -1,5 +1,7 @@
"""A stupid extension used for tests."""
from __future__ import unicode_literals
from modoboa.core import extensions
@@ -11,4 +13,5 @@ class StupidExtension2(extensions.ModoExtension):
version = "1.0.0"
description = "A stupid extension"
extensions.exts_pool.register_extension(StupidExtension2, show=False)
@@ -1,5 +1,7 @@
"""Custom urls."""
from __future__ import unicode_literals
from django.conf.urls import url
from . import views
@@ -1,3 +1,5 @@
from __future__ import unicode_literals
from django import http

Some files were not shown because too many files have changed in this diff Show More