From 4d53b8da42d572865fd385d10f77b16562a20789 Mon Sep 17 00:00:00 2001 From: Dennis Siemensma Date: Sun, 7 Mar 2021 11:01:48 +0100 Subject: [PATCH] E-mailverzending oneindige timeout #1310 --- docs/changelog.rst | 1 + dsmr_backend/services/email.py | 4 +++- dsmr_backend/tests/services/test_email.py | 6 ++++-- dsmrreader/__init__.py | 2 +- dsmrreader/config/base.py | 1 + dsmrreader/locales/nl/LC_MESSAGES/django.mo | Bin 106909 -> 106890 bytes 6 files changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 368ca7a1a..e2f4b56ba 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -28,6 +28,7 @@ v4.13.0 - 2021-xx-xx - ``Fixed``: Schoonheidsfoutje op de statistieken pagina [`#1305 `_] - ``Fixed``: Bestaande superusers uitschakelen bij uitvoeren "dsmr_superuser" command [`#1309 `_] +- ``Fixed``: E-mailverzending timeout [`#1310 `_] v4.12.0 - 2021-02-17 diff --git a/dsmr_backend/services/email.py b/dsmr_backend/services/email.py index a46a0c152..a48bbd27c 100644 --- a/dsmr_backend/services/email.py +++ b/dsmr_backend/services/email.py @@ -27,7 +27,9 @@ def send(email_from, email_to, subject, body, attachment=None): use_ssl=email_settings.use_ssl ) - # Force translations. + # Prevent hanging processes, ensure there is always a timeout set. + assert email_backend.timeout is not None + message = mail.EmailMessage( subject=subject, body=body, diff --git a/dsmr_backend/tests/services/test_email.py b/dsmr_backend/tests/services/test_email.py index e30a44057..be77572c2 100644 --- a/dsmr_backend/tests/services/test_email.py +++ b/dsmr_backend/tests/services/test_email.py @@ -23,7 +23,8 @@ def test_send_email(self, attach_file_mock, send_mock): email_from='root@localhost', email_to='root@localhost', subject='Test', - body='Body') + body='Body' + ) self.assertTrue(send_mock.called) self.assertFalse(attach_file_mock.called) @@ -36,7 +37,8 @@ def test_send_email_with_attachment(self, attach_file_mock, send_mock): email_to='root@localhost', subject='Test', body='Body', - attachment='/tmp/test') + attachment='/tmp/test' + ) self.assertTrue(send_mock.called) self.assertTrue(attach_file_mock.called) diff --git a/dsmrreader/__init__.py b/dsmrreader/__init__.py index a34400575..87c059933 100644 --- a/dsmrreader/__init__.py +++ b/dsmrreader/__init__.py @@ -1,5 +1,5 @@ from django.utils.version import get_version -VERSION = (4, 13, 0, 'beta', 6) +VERSION = (4, 13, 0, 'beta', 7) __version__ = get_version(VERSION) diff --git a/dsmrreader/config/base.py b/dsmrreader/config/base.py index 999e17658..bed58adfc 100644 --- a/dsmrreader/config/base.py +++ b/dsmrreader/config/base.py @@ -156,6 +156,7 @@ LOCALE_PATHS = (os.path.join(BASE_DIR, 'locales'), ) +EMAIL_TIMEOUT = 30 """ Python Logging. """ LOGGING = { diff --git a/dsmrreader/locales/nl/LC_MESSAGES/django.mo b/dsmrreader/locales/nl/LC_MESSAGES/django.mo index 283f150834fbeaec118700714214345eae2506ea..27b7ba62f29de66152d2b633d1f5e6ce511ad337 100644 GIT binary patch delta 6822 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