summaryrefslogtreecommitdiff
path: root/addons/test_mass_mailing/tests/common.py
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/test_mass_mailing/tests/common.py
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/test_mass_mailing/tests/common.py')
-rw-r--r--addons/test_mass_mailing/tests/common.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/addons/test_mass_mailing/tests/common.py b/addons/test_mass_mailing/tests/common.py
new file mode 100644
index 00000000..ff368bf5
--- /dev/null
+++ b/addons/test_mass_mailing/tests/common.py
@@ -0,0 +1,68 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from odoo.addons.mass_mailing.tests.common import MassMailCommon
+from odoo.addons.test_mail.tests.common import TestMailCommon
+
+
+class TestMassMailCommon(MassMailCommon, TestMailCommon):
+
+ @classmethod
+ def setUpClass(cls):
+ super(TestMassMailCommon, cls).setUpClass()
+
+ cls.test_alias = cls.env['mail.alias'].create({
+ 'alias_name': 'test.alias',
+ 'alias_user_id': False,
+ 'alias_model_id': cls.env['ir.model']._get('mailing.test.simple').id,
+ 'alias_contact': 'everyone'
+ })
+
+ # enforce last update by user_marketing to match _process_mass_mailing_queue
+ # taking last writer as user running a batch
+ cls.mailing_bl = cls.env['mailing.mailing'].with_user(cls.user_marketing).create({
+ 'name': 'SourceName',
+ 'subject': 'MailingSubject',
+ 'preview': 'Hi ${object.name} :)',
+ 'body_html': """<div><p>Hello ${object.name}</p>,
+% set url = "www.odoo.com"
+% set httpurl = "https://www.odoo.eu"
+<span>Website0: <a id="url0" href="https://www.odoo.tz/my/${object.name}">https://www.odoo.tz/my/${object.name}</a></span>
+<span>Website1: <a id="url1" href="https://www.odoo.be">https://www.odoo.be</a></span>
+<span>Website2: <a id="url2" href="https://${url}">https://${url}</a></span>
+<span>Website3: <a id="url3" href="${httpurl}">${httpurl}</a></span>
+<span>External1: <a id="url4" href="https://www.example.com/foo/bar?baz=qux">Youpie</a></span>
+<span>Internal1: <a id="url5" href="/event/dummy-event-0">Internal link</a></span>
+<span>Internal2: <a id="url6" href="/view"/>View link</a></span>
+<span>Email: <a id="url7" href="mailto:test@odoo.com">test@odoo.com</a></span>
+<p>Stop spam ? <a id="url8" role="button" href="/unsubscribe_from_list">Ok</a></p>
+</div>""",
+ 'mailing_type': 'mail',
+ 'mailing_model_id': cls.env['ir.model']._get('mailing.test.blacklist').id,
+ 'reply_to_mode': 'thread',
+ })
+
+ @classmethod
+ def _create_test_blacklist_records(cls, model='mailing.test.blacklist', count=1):
+ """ Deprecated, remove in 14.4 """
+ return cls.__create_mailing_test_records(model=model, count=count)
+
+ @classmethod
+ def _create_mailing_test_records(cls, model='mailing.test.blacklist', partners=None, count=1):
+ """ Helper to create data. Currently simple, to be improved. """
+ Model = cls.env[model]
+ email_field = 'email' if 'email' in Model else 'email_from'
+ partner_field = 'customer_id' if 'customer_id' in Model else 'partner_id'
+
+ vals_list = []
+ for x in range(0, count):
+ vals = {
+ 'name': 'TestRecord_%02d' % x,
+ email_field: '"TestCustomer %02d" <test.record.%02d@test.example.com>' % (x, x),
+ }
+ if partners:
+ vals[partner_field] = partners[x % len(partners)]
+
+ vals_list.append(vals)
+
+ return cls.env[model].create(vals_list)