From b45538e5b1c8fbade92e7be0981dde8108f900fd Mon Sep 17 00:00:00 2001 From: Rust Saiargaliev Date: Tue, 22 Aug 2023 21:07:25 +0200 Subject: [PATCH] Fix #54 -- Reset existing payloads only (#55) --- emark/backends.py | 3 ++- tests/test_backends.py | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/emark/backends.py b/emark/backends.py index 90fdc3a..3914904 100644 --- a/emark/backends.py +++ b/emark/backends.py @@ -73,7 +73,8 @@ class ConsoleEmailBackendMixin: def write_message(self, message): msg = message.message() payload_count = len(msg.get_payload()) - msg.set_payload(msg.get_payload(0)) + if payload_count > 1: + msg.set_payload(msg.get_payload(0)) msg_data = msg.as_bytes() charset = ( msg.get_charset().get_output_charset() if msg.get_charset() else "utf-8" diff --git a/tests/test_backends.py b/tests/test_backends.py index 6924179..8d44cc4 100644 --- a/tests/test_backends.py +++ b/tests/test_backends.py @@ -3,7 +3,7 @@ from unittest.mock import MagicMock, Mock import pytest -from django.core.mail import EmailMultiAlternatives +from django.core.mail import EmailMessage, EmailMultiAlternatives from emark import backends from emark.models import Send @@ -60,6 +60,17 @@ def test_send__with_user(self, admin_user, email_message): obj = Send.objects.get() assert obj.user == admin_user + @pytest.mark.django_db + def test_send__native_email(self): + with io.StringIO() as stream: + backend = backends.TrackingConsoleEmailBackend(stream=stream) + EmailMessage( + to=["peter.parker@avengers.com"], + connection=backend, + ).send() + + assert Send.objects.count() == 1 + @pytest.mark.django_db def test_write_message__native_email(self): msg = EmailMultiAlternatives(to=["ironman@avengers.com"], body="foo") @@ -72,7 +83,7 @@ def test_write_message__native_email(self): assert Send.objects.count() == 1 @pytest.mark.django_db - def test_write_message__native_email__multiple_receipients(self): + def test_write_message__native_email__multiple_recipients(self): msg = EmailMultiAlternatives( to=["spiderman@avengers.com"], cc=["peter.parker@aol.com"], body="foo" )