summaryrefslogtreecommitdiff
path: root/addons/mass_mailing/tests/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/mass_mailing/tests/common.py')
-rw-r--r--addons/mass_mailing/tests/common.py45
1 files changed, 5 insertions, 40 deletions
diff --git a/addons/mass_mailing/tests/common.py b/addons/mass_mailing/tests/common.py
index 9d49a5c5bcf..8c3925d7527 100644
--- a/addons/mass_mailing/tests/common.py
+++ b/addons/mass_mailing/tests/common.py
@@ -2,48 +2,11 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.addons.link_tracker.tests.common import MockLinkTracker
-from odoo.addons.mail.tests.common import MailCase, mail_new_test_user
-from odoo.tests.common import SavepointCase
+from odoo.addons.mail.tests.common import MailCase, MailCommon, mail_new_test_user
class MassMailCase(MailCase, MockLinkTracker):
- def _find_mail_mail_wemail(self, email_to, state, author=None):
- for mail in self._new_mails:
- if author is not None and mail.author_id != author:
- continue
- if mail.state != state:
- continue
- if (mail.email_to == email_to and not mail.recipient_ids) or (not mail.email_to and mail.recipient_ids.email) == email_to:
- break
- else:
- raise AssertionError('mail.mail not found for email_to %s / state %s in %s' % (email_to, state, repr([m.email_to for m in self._new_mails])))
- return mail
-
- def _find_mail_mail_wrecord(self, record):
- for mail in self._new_mails:
- if mail.model == record._name and mail.res_id == record.id:
- break
- else:
- raise AssertionError('mail.mail not found for record %s in %s' % (record, repr([m.email_to for m in self._new_mails])))
- return mail
-
- def assertMailMailWEmails(self, emails, state, content, fields_values=None):
- """ Will check in self._new_mails to find a sent mail.mail. To use with
- mail gateway mock.
-
- :param emails: list of emails;
- :param state: state of mail.mail;
- :param content: content to check for each email;
- :param fields_values: specific value to check on the mail.mail record;
- """
- for email_to in emails:
- sent_mail = self._find_mail_mail_wemail(email_to, state)
- if content:
- self.assertIn(content, sent_mail.body_html)
- for fname, fvalue in (fields_values or {}).items():
- self.assertEqual(sent_mail[fname], fvalue)
-
def assertMailTraces(self, recipients_info, mailing, records, check_mail=True):
""" Check content of traces.
@@ -90,6 +53,8 @@ class MassMailCase(MailCase, MockLinkTracker):
if state == 'sent':
self.assertMailMailWEmails([email], 'sent', content, fields_values=fields_values)
+ elif state == 'replied': # replied imply something has been sent
+ self.assertMailMailWEmails([email], 'sent', content, fields_values=fields_values)
elif state == 'ignored':
self.assertMailMailWEmails([email], 'cancel', content, fields_values=fields_values)
elif state == 'exception':
@@ -100,11 +65,11 @@ class MassMailCase(MailCase, MockLinkTracker):
raise NotImplementedError()
-class TestMassMailCommon(SavepointCase, MassMailCase):
+class MassMailCommon(MailCommon, MassMailCase):
@classmethod
def setUpClass(cls):
- super(TestMassMailCommon, cls).setUpClass()
+ super(MassMailCommon, cls).setUpClass()
cls.user_marketing = mail_new_test_user(
cls.env, login='user_marketing',