Skip to content

Commit

Permalink
Merge pull request #31 from Zagrebelin/feature/django_4.0
Browse files Browse the repository at this point in the history
Django 4.0+ compatibility
  • Loading branch information
delneg authored May 5, 2022
2 parents a589468 + da6ac57 commit e27cabe
Show file tree
Hide file tree
Showing 14 changed files with 33 additions and 26 deletions.
2 changes: 1 addition & 1 deletion django_mail_admin/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from django.shortcuts import reverse
from django.utils import timezone
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _

from django_mail_admin.models import Mailbox, IncomingAttachment, IncomingEmail, TemplateVariable, OutgoingEmail, \
Outbox, EmailTemplate, STATUS, Log, Attachment
Expand Down
2 changes: 1 addition & 1 deletion django_mail_admin/apps.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# -*- coding: utf-8
from django.apps import AppConfig
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _


class DjangoMailAdminConfig(AppConfig):
Expand Down
2 changes: 1 addition & 1 deletion django_mail_admin/fields.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from django.db.models import TextField
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _

from .validators import validate_comma_separated_emails

Expand Down
2 changes: 1 addition & 1 deletion django_mail_admin/models/configurations.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from django.core.files.base import ContentFile, File
from django.db import models
from django.utils.timezone import now
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _

from django_mail_admin import utils
from django_mail_admin.settings import get_allowed_mimetypes, strip_unallowed_mimetypes, \
Expand Down
2 changes: 1 addition & 1 deletion django_mail_admin/models/incoming.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from django.core.exceptions import ValidationError
from django.core.mail.message import make_msgid
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _

from django_mail_admin.models import Mailbox, OutgoingEmail
from django_mail_admin.settings import get_attachment_interpolation_header, get_altered_message_header
Expand Down
2 changes: 1 addition & 1 deletion django_mail_admin/models/logs.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from django_mail_admin.utils import STATUS
from django.db import models
from .outgoing import OutgoingEmail
Expand Down
6 changes: 3 additions & 3 deletions django_mail_admin/models/outgoing.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
from django.core.mail import EmailMessage, EmailMultiAlternatives
from django.db import models
from django.template import Template, Context
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
from django.utils.encoding import force_str
from django.utils.translation import gettext_lazy as _
from jsonfield import JSONField

from django_mail_admin.connections import connections
Expand Down Expand Up @@ -258,7 +258,7 @@ def send_mail(subject, message, from_email, recipient_list, html_message='',
``send_mail`` core email method.
"""

subject = force_text(subject)
subject = force_str(subject)
status = None if priority == PRIORITY.now else STATUS.queued
emails = []
for address in recipient_list:
Expand Down
2 changes: 1 addition & 1 deletion django_mail_admin/models/templates.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from django.db import models
from django.template import Template
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _

from django_mail_admin.validators import validate_template_syntax

Expand Down
2 changes: 1 addition & 1 deletion django_mail_admin/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from django.conf import settings
from django.core.cache import caches
from django.core.cache.backends.base import InvalidCacheBackendError
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _


def get_cache(name):
Expand Down
6 changes: 3 additions & 3 deletions django_mail_admin/signals.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from django.dispatch.dispatcher import Signal

message_received = Signal(providing_args=['message'])
message_received = Signal()
email_queued = Signal() # sender is OutgoingEmail instance
email_sent = Signal(providing_args=['outgoing_email'])
email_failed_to_send = Signal(providing_args=['outgoing_email'])
email_sent = Signal()
email_failed_to_send = Signal()
6 changes: 3 additions & 3 deletions django_mail_admin/validators.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from django.core.exceptions import ValidationError
from django.core.validators import validate_email
from django.template import Template, TemplateSyntaxError, TemplateDoesNotExist
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
from django.utils.encoding import force_str
from django.utils.translation import gettext_lazy as _


def validate_email_with_name(value):
Expand All @@ -11,7 +11,7 @@ def validate_email_with_name(value):
Both "Recipient Name <[email protected]>" and "[email protected]" are valid.
"""
value = force_text(value)
value = force_str(value)

if '<' and '>' in value:
lesses = value.count('<')
Expand Down
4 changes: 4 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ def get_version(*file_paths):
'Framework :: Django :: 1.10',
'Framework :: Django :: 1.11',
'Framework :: Django :: 2.0',
'Framework :: Django :: 3.0',
'Framework :: Django :: 4.0',
'Intended Audience :: Developers',
'License :: OSI Approved :: BSD License',
'Natural Language :: English',
Expand All @@ -75,6 +77,8 @@ def get_version(*file_paths):
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
],
extras_require={
'gmail': ['social-auth-app-django']
Expand Down
6 changes: 3 additions & 3 deletions tests/test_process_email.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from django_mail_admin.utils import convert_header_to_unicode
from django_mail_admin import utils
from .test_mailbox_base import EmailMessageTestCase
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from django.core.mail import EmailMessage
from django_mail_admin.settings import get_config

Expand Down Expand Up @@ -357,12 +357,12 @@ def test_message_with_long_content(self):
email_object = self._get_email_object(
'message_with_long_content.eml',
)
size = len(force_text(email_object.as_string()))
size = len(force_str(email_object.as_string()))

msg = self.mailbox.process_incoming_message(email_object)

self.assertEqual(size,
len(force_text(msg.get_email_object().as_string())))
len(force_str(msg.get_email_object().as_string())))

def test_message_saved(self):
message = self._get_email_object('generic_message.eml')
Expand Down
15 changes: 9 additions & 6 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
[tox]
envlist =
; py{33,34,35}-django18
py{34,35,36,37}-django111
py{34,35,36,37}-django20
py{35,36,37}-django21
py{35,36,37,38}-django22
py{36,37,38}-django30
py{34,35,36,37,39,310}-django111
py{34,35,36,37,39,310}-django20
py{35,36,37,39,310}-django21
py{35,36,37,38,39,310}-django22
py{36,37,38,39,310}-django30
py{36,37,38,39,310}-django40


[testenv]
Expand All @@ -22,14 +23,16 @@ deps =
django21: Django>=2.1,<2.2
django22: Django>=2.2,<3.0
django30: Django>=3.0,<3.1
django40: Django>=4.0
passenv = TRAVIS TRAVIS_JOB_ID TRAVIS_BRANCH
[travis:env]
DJANGO =
; 1.8: django18
1.8: django18
1.9: django19
1.10: django110
1.11: django111
2.0: django20
2.1: django21
2.2: django22
3.0: django30
4.0: django40

0 comments on commit e27cabe

Please sign in to comment.