From 83ccd6d16932466ffe429e37263941af6bbfadd6 Mon Sep 17 00:00:00 2001 From: Nachtalb Date: Mon, 28 Sep 2020 11:01:40 +0200 Subject: [PATCH] Correctly set email_from_ name / address in Plone 5 Code copied from p.a.testing version with the email changed from "noreply@example.com" to "test@localhost" so that tests that depend on that don't unnecessarily break. --- ftw/testing/mailing.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/ftw/testing/mailing.py b/ftw/testing/mailing.py index eb74d79..e86a3ea 100644 --- a/ftw/testing/mailing.py +++ b/ftw/testing/mailing.py @@ -1,4 +1,6 @@ from Products.MailHost.interfaces import IMailHost +from ftw.testing import IS_PLONE_5 +from plone.registry.interfaces import IRegistry from zope.component import getUtility @@ -25,7 +27,18 @@ def set_up(self, configure=True): if configure: mockmailhost.smtp_host = 'localhost' - self.portal.email_from_address = 'test@localhost' + if IS_PLONE_5: + registry = getUtility(IRegistry, context=self.portal) + + if not registry['plone.email_from_address']: + self.portal._original_email_address = registry["plone.email_from_address"] + registry['plone.email_from_address'] = 'test@localhost' + + if not registry['plone.email_from_name']: + self.portal._original_email_name = registry["plone.email_from_name"] + registry['plone.email_from_name'] = u'Plone site' + else: + self.portal.email_from_address = 'test@localhost' def tear_down(self): # Do NOT move the MockMailHost import to the top! @@ -39,6 +52,17 @@ def tear_down(self): if isinstance(mailhost, MockMailHost): sm.unregisterUtility(component=mailhost, provided=IMailHost) + if IS_PLONE_5: + registry = getUtility(IRegistry, context=self.portal) + + if hasattr(self.portal, "_original_email_name"): + registry["plone.email_from_name"] = self.portal._original_email_name + delattr(self.portal, "_original_email_name") + + if hasattr(self.portal, "_original_email_address"): + registry["plone.email_from_address"] = self.portal._original_email_address # noqa: E501 + delattr(self.portal, "_original_email_address") + def get_mailhost(self): mailhost = getUtility(IMailHost)