summaryrefslogtreecommitdiff
path: root/addons/test_mail_full
diff options
context:
space:
mode:
authorThibault Delavallée <tde@odoo.com>2021-04-16 11:52:45 +0000
committerThibault Delavallée <tde@odoo.com>2021-04-19 14:11:13 +0000
commite77b9e575e398f42df524bdaf5d692ea882a4521 (patch)
treedd846e1a25aea75549126c77fd7504caa79e4c25 /addons/test_mail_full
parent509d761921167a041bfe5dd403181d399c20dacc (diff)
[IMP] event_sms, link_tracker, sms, test_mail_full: improve SMS-based mailing tests
PURPOSE Purpose is to have more tests when sending sms mailings, notably about canceled or failed mails or sms as well as jinja and links rendering. SPECIFICATIONS In this commit we improve SMS Marketing mailing tests. We notably * add tests for void and invalid email and numbers. It allows to check they correctly update their trace status; * add tests for unsubscribe and view links embedded in sms marketing; * add tests to simulate a click on links sent through sms marketing and ensure click statistics are effectively updated; * ensure content of sent sms are checked; Default content of mailings used in test is updated to ensure jinja is correctly rendered, including links and some corner cases. This will also helps ensuring behavior is kept when converting to QWeb. In event we now correctly use sms gateway mock to ensure SMS finding. In link_tracker a helper is added to check url tracking in plaintext content. LINKS Task ID-2508643 Followup of odoo/odoo#68874 (improve mail tests) Prepares Task ID-27033 (support QWeb in templates) Prepares Task ID-2377974 (clean trace and status management in mass mailing) COM PR odoo/odoo#69461 ENT PR odoo/enterprise#17780
Diffstat (limited to 'addons/test_mail_full')
-rw-r--r--addons/test_mail_full/tests/test_mass_sms.py135
-rw-r--r--addons/test_mail_full/tests/test_sms_composer.py33
-rw-r--r--addons/test_mail_full/tests/test_sms_performance.py16
-rw-r--r--addons/test_mail_full/tests/test_sms_post.py8
-rw-r--r--addons/test_mail_full/tests/test_sms_server_actions.py10
-rw-r--r--addons/test_mail_full/tests/test_sms_sms.py2
6 files changed, 152 insertions, 52 deletions
diff --git a/addons/test_mail_full/tests/test_mass_sms.py b/addons/test_mail_full/tests/test_mass_sms.py
index a3e3d35e14a..33cb90e0028 100644
--- a/addons/test_mail_full/tests/test_mass_sms.py
+++ b/addons/test_mail_full/tests/test_mass_sms.py
@@ -5,15 +5,16 @@
from odoo.addons.phone_validation.tools import phone_validation
from odoo.addons.test_mail_full.tests.common import TestMailFullCommon
from odoo.tests import tagged
+from odoo.tests.common import users
from odoo.tools import mute_logger
@tagged('mass_mailing')
-class TestMassSMS(TestMailFullCommon):
+class TestMassSMSCommon(TestMailFullCommon):
@classmethod
def setUpClass(cls):
- super(TestMassSMS, cls).setUpClass()
+ super(TestMassSMSCommon, cls).setUpClass()
cls._test_body = 'Mass SMS in your face'
records = cls.env['mail.test.sms']
@@ -58,6 +59,10 @@ class TestMassSMS(TestMailFullCommon):
'sms_allow_unsubscribe': False,
})
+
+@tagged('mass_mailing')
+class TestMassSMSInternals(TestMassSMSCommon):
+
def test_mass_sms_internals(self):
with self.with_user('user_marketing'):
mailing = self.env['mailing.mailing'].create({
@@ -80,9 +85,12 @@ class TestMassSMS(TestMailFullCommon):
with self.mockSMSGateway():
mailing.action_send_sms()
- self.assertSMSStatistics(
- [{'partner': record.customer_id, 'number': self.records_numbers[i], 'content': 'Dear %s this is a mass SMS.' % record.display_name} for i, record in enumerate(self.records)],
- mailing, self.records, check_sms=True
+ self.assertSMSTraces(
+ [{'partner': record.customer_id,
+ 'number': self.records_numbers[i],
+ 'content': 'Dear %s this is a mass SMS.' % record.display_name
+ } for i, record in enumerate(self.records)],
+ mailing, self.records,
)
def test_mass_sms_internals_errors(self):
@@ -92,6 +100,27 @@ class TestMassSMS(TestMailFullCommon):
'customer_id': self.partners[0].id,
'phone_nbr': '0456999999',
})
+ void_record = self.env['mail.test.sms'].create({
+ 'name': 'MassSMSTest_void',
+ 'customer_id': False,
+ 'phone_nbr': '',
+ })
+ falsy_record_1 = self.env['mail.test.sms'].create({
+ 'name': 'MassSMSTest_falsy_1',
+ 'customer_id': False,
+ 'phone_nbr': 'abcd',
+ })
+ falsy_record_2 = self.env['mail.test.sms'].create({
+ 'name': 'MassSMSTest_falsy_2',
+ 'customer_id': False,
+ 'phone_nbr': '04561122',
+ })
+ bl_record_1 = self.env['mail.test.sms'].create({
+ 'name': 'MassSMSTest_bl_1',
+ 'customer_id': False,
+ 'phone_nbr': '0456110011',
+ })
+ self.env['phone.blacklist'].create({'number': '0456110011'})
# new customer, number already on record -> should be ignored
country_be_id = self.env.ref('base.be').id,
nr2_partner = self.env['res.partner'].create({
@@ -110,13 +139,40 @@ class TestMassSMS(TestMailFullCommon):
with self.mockSMSGateway():
self.mailing.action_send_sms()
- self.assertSMSStatistics(
- [{'partner': record.customer_id, 'number': records_numbers[i], 'content': 'Dear %s this is a mass SMS.' % record.display_name} for i, record in enumerate(self.records | new_record_1)],
- self.mailing, self.records | new_record_1, check_sms=True
+ self.assertSMSTraces(
+ [{'partner': record.customer_id, 'number': records_numbers[i],
+ 'content': 'Dear %s this is a mass SMS.' % record.display_name}
+ for i, record in enumerate(self.records | new_record_1)],
+ self.mailing, self.records | new_record_1,
+ )
+ # duplicates
+ self.assertSMSTraces(
+ [{'partner': new_record_2.customer_id, 'number': self.records_numbers[0],
+ 'content': 'Dear %s this is a mass SMS.' % new_record_2.display_name, 'state': 'ignored',
+ 'failure_type': 'sms_duplicate'}],
+ self.mailing, new_record_2,
+ )
+ # blacklist
+ self.assertSMSTraces(
+ [{'partner': self.env['res.partner'], 'number': phone_validation.phone_format(bl_record_1.phone_nbr, 'BE', '32', force_format='E164'),
+ 'content': 'Dear %s this is a mass SMS.' % bl_record_1.display_name, 'state': 'ignored',
+ 'failure_type': 'sms_blacklist'}],
+ self.mailing, bl_record_1,
+ )
+ # missing number
+ self.assertSMSTraces(
+ [{'partner': self.env['res.partner'], 'number': False,
+ 'content': 'Dear %s this is a mass SMS.' % void_record.display_name, 'state': 'exception',
+ 'failure_type': 'sms_number_missing'}],
+ self.mailing, void_record,
)
- self.assertSMSStatistics(
- [{'partner': new_record_2.customer_id, 'number': self.records_numbers[0], 'content': 'Dear %s this is a mass SMS.' % new_record_2.display_name, 'state': 'ignored', 'failure_type': 'sms_duplicate'}],
- self.mailing, new_record_2, check_sms=True
+ # wrong values
+ self.assertSMSTraces(
+ [{'partner': self.env['res.partner'], 'number': record.phone_nbr,
+ 'content': 'Dear %s this is a mass SMS.' % record.display_name, 'state': 'bounced',
+ 'failure_type': 'sms_number_format'}
+ for record in falsy_record_1 + falsy_record_2],
+ self.mailing, falsy_record_1 + falsy_record_2,
)
def test_mass_sms_internals_done_ids(self):
@@ -127,9 +183,11 @@ class TestMassSMS(TestMailFullCommon):
traces = self.env['mailing.trace'].search([('mass_mailing_id', 'in', self.mailing.ids)])
self.assertEqual(len(traces), 5)
# new traces generated
- self.assertSMSStatistics(
- [{'partner': record.customer_id, 'number': self.records_numbers[i], 'content': 'Dear %s this is a mass SMS.' % record.display_name} for i, record in enumerate(self.records[:5])],
- self.mailing, self.records[:5], check_sms=True
+ self.assertSMSTraces(
+ [{'partner': record.customer_id, 'number': self.records_numbers[i],
+ 'content': 'Dear %s this is a mass SMS.' % record.display_name}
+ for i, record in enumerate(self.records[:5])],
+ self.mailing, self.records[:5],
)
with self.with_user('user_marketing'):
@@ -139,14 +197,19 @@ class TestMassSMS(TestMailFullCommon):
# delete old traces (for testing purpose: ease check by deleting old ones)
traces.unlink()
# new failed traces generated for duplicates
- self.assertSMSStatistics(
- [{'partner': record.customer_id, 'number': self.records_numbers[i], 'content': 'Dear %s this is a mass SMS.' % record.display_name, 'state': 'ignored', 'failure_type': 'sms_duplicate'} for i, record in enumerate(self.records[:5])],
- self.mailing, self.records[:5], check_sms=True
+ self.assertSMSTraces(
+ [{'partner': record.customer_id, 'number': self.records_numbers[i],
+ 'content': 'Dear %s this is a mass SMS.' % record.display_name, 'state': 'ignored',
+ 'failure_type': 'sms_duplicate'}
+ for i, record in enumerate(self.records[:5])],
+ self.mailing, self.records[:5],
)
# new traces generated
- self.assertSMSStatistics(
- [{'partner': record.customer_id, 'number': self.records_numbers[i+5], 'content': 'Dear %s this is a mass SMS.' % record.display_name} for i, record in enumerate(self.records[5:])],
- self.mailing, self.records[5:], check_sms=True
+ self.assertSMSTraces(
+ [{'partner': record.customer_id, 'number': self.records_numbers[i+5],
+ 'content': 'Dear %s this is a mass SMS.' % record.display_name}
+ for i, record in enumerate(self.records[5:])],
+ self.mailing, self.records[5:],
)
@mute_logger('odoo.addons.mail.models.mail_render_mixin')
@@ -177,3 +240,35 @@ class TestMassSMS(TestMailFullCommon):
with self.with_user('user_marketing'):
with self.mock_mail_gateway(), self.assertRaises(Exception):
mailing_test.action_send_sms()
+
+
+@tagged('mass_mailing')
+class TestMassSMS(TestMassSMSCommon):
+
+ @users('user_marketing')
+ def test_mass_sms_links(self):
+ mailing = self.env['mailing.mailing'].browse(self.mailing.ids)
+ mailing.write({
+ 'body_plaintext': 'Dear ${object.display_name} this is a mass SMS with two links http://www.odoo.com/smstest and http://www.odoo.com/smstest/${object.name}',
+ 'sms_template_id': False,
+ 'sms_force_send': True,
+ 'sms_allow_unsubscribe': True,
+ })
+
+ with self.mockSMSGateway():
+ mailing.action_send_sms()
+
+ self.assertSMSTraces(
+ [{'partner': record.customer_id,
+ 'number': self.records_numbers[i],
+ 'state': 'sent',
+ 'content': 'Dear %s this is a mass SMS with two links' % record.display_name
+ } for i, record in enumerate(self.records)],
+ mailing, self.records,
+ sms_links_info=[[
+ ('http://www.odoo.com/smstest', True, {}),
+ ('http://www.odoo.com/smstest/%s' % record.name, True, {}),
+ # unsubscribe is not shortened and parsed at sending
+ ('unsubscribe', False, {}),
+ ] for record in self.records],
+ )
diff --git a/addons/test_mail_full/tests/test_sms_composer.py b/addons/test_mail_full/tests/test_sms_composer.py
index 8a36d0ce2e5..cf6b782104f 100644
--- a/addons/test_mail_full/tests/test_sms_composer.py
+++ b/addons/test_mail_full/tests/test_sms_composer.py
@@ -45,7 +45,9 @@ class TestSMSComposerComment(TestMailFullCommon, TestRecipients):
with self.mockSMSGateway():
composer._action_send_sms()
- self.assertSMSSent(self.random_numbers_san, self._test_body)
+ # use sms.api directly, does not create sms.sms
+ self.assertNoSMS()
+ self.assertSMSIapSent(self.random_numbers_san, self._test_body)
def test_composer_comment_default(self):
with self.with_user('employee'):
@@ -198,7 +200,10 @@ class TestSMSComposerComment(TestMailFullCommon, TestRecipients):
with self.mockSMSGateway():
composer._action_send_sms()
- self.assertSMSSent(self.random_numbers_san, self._test_body)
+
+ # use sms.api directly, does not create sms.sms
+ self.assertNoSMS()
+ self.assertSMSIapSent(self.random_numbers_san, self._test_body)
class TestSMSComposerBatch(TestMailFullCommon):
@@ -303,7 +308,7 @@ class TestSMSComposerMass(TestMailFullCommon):
composer.action_send_sms()
for record in self.records:
- self.assertSMSOutgoing(record.customer_id, None, self._test_body)
+ self.assertSMSOutgoing(record.customer_id, None, content=self._test_body)
def test_composer_mass_active_domain_w_template(self):
with self.with_user('employee'):
@@ -321,7 +326,7 @@ class TestSMSComposerMass(TestMailFullCommon):
composer.action_send_sms()
for record in self.records:
- self.assertSMSOutgoing(record.customer_id, None, 'Dear %s this is an SMS.' % record.display_name)
+ self.assertSMSOutgoing(record.customer_id, None, content='Dear %s this is an SMS.' % record.display_name)
def test_composer_mass_active_ids(self):
with self.with_user('employee'):
@@ -338,7 +343,7 @@ class TestSMSComposerMass(TestMailFullCommon):
composer.action_send_sms()
for partner in self.partners:
- self.assertSMSOutgoing(partner, None, self._test_body)
+ self.assertSMSOutgoing(partner, None, content=self._test_body)
def test_composer_mass_active_ids_w_blacklist(self):
self.env['phone.blacklist'].create([{
@@ -363,7 +368,7 @@ class TestSMSComposerMass(TestMailFullCommon):
for partner in self.partners[5:]:
self.assertSMSOutgoing(partner, partner.phone_sanitized, content=self._test_body)
for partner in self.partners[:5]:
- self.assertSMSCanceled(partner, partner.phone_sanitized, 'sms_blacklist', content=self._test_body)
+ self.assertSMSCanceled(partner, partner.phone_sanitized, error_code='sms_blacklist', content=self._test_body)
def test_composer_mass_active_ids_wo_blacklist(self):
self.env['phone.blacklist'].create([{
@@ -414,9 +419,9 @@ class TestSMSComposerMass(TestMailFullCommon):
for partner in self.partners[8:]:
self.assertSMSOutgoing(partner, partner.phone_sanitized, content=self._test_body)
for partner in self.partners[5:8]:
- self.assertSMSCanceled(partner, partner.phone_sanitized, 'sms_duplicate', content=self._test_body)
+ self.assertSMSCanceled(partner, partner.phone_sanitized, error_code='sms_duplicate', content=self._test_body)
for partner in self.partners[:5]:
- self.assertSMSCanceled(partner, partner.phone_sanitized, 'sms_blacklist', content=self._test_body)
+ self.assertSMSCanceled(partner, partner.phone_sanitized, error_code='sms_blacklist', content=self._test_body)
def test_composer_mass_active_ids_w_template(self):
with self.with_user('employee'):
@@ -433,7 +438,7 @@ class TestSMSComposerMass(TestMailFullCommon):
composer.action_send_sms()
for record in self.records:
- self.assertSMSOutgoing(record.customer_id, None, 'Dear %s this is an SMS.' % record.display_name)
+ self.assertSMSOutgoing(record.customer_id, None, content='Dear %s this is an SMS.' % record.display_name)
def test_composer_mass_active_ids_w_template_and_lang(self):
self.env['res.lang']._activate_lang('fr_FR')
@@ -467,9 +472,9 @@ class TestSMSComposerMass(TestMailFullCommon):
for record in self.records:
if record.customer_id == self.partners[2]:
- self.assertSMSOutgoing(record.customer_id, None, 'Cher·e· %s ceci est un SMS.' % record.display_name)
+ self.assertSMSOutgoing(record.customer_id, None, content='Cher·e· %s ceci est un SMS.' % record.display_name)
else:
- self.assertSMSOutgoing(record.customer_id, None, 'Dear %s this is an SMS.' % record.display_name)
+ self.assertSMSOutgoing(record.customer_id, None, content='Dear %s this is an SMS.' % record.display_name)
def test_composer_mass_active_ids_w_template_and_log(self):
with self.with_user('employee'):
@@ -486,7 +491,7 @@ class TestSMSComposerMass(TestMailFullCommon):
composer.action_send_sms()
for record in self.records:
- self.assertSMSOutgoing(record.customer_id, None, 'Dear %s this is an SMS.' % record.display_name)
+ self.assertSMSOutgoing(record.customer_id, None, content='Dear %s this is an SMS.' % record.display_name)
self.assertSMSLogged(record, 'Dear %s this is an SMS.' % record.display_name)
def test_composer_template_context_action(self):
@@ -558,5 +563,5 @@ class TestSMSComposerMass(TestMailFullCommon):
with self.mockSMSGateway():
composer.action_send_sms()
- self.assertSMSOutgoing(test_record_1.customer_id, None, 'Dear %s this is an SMS.' % test_record_1.display_name)
- self.assertSMSOutgoing(test_record_2.customer_id, None, "Hello %s ceci est en français." % test_record_2.display_name)
+ self.assertSMSOutgoing(test_record_1.customer_id, None, content='Dear %s this is an SMS.' % test_record_1.display_name)
+ self.assertSMSOutgoing(test_record_2.customer_id, None, content="Hello %s ceci est en français." % test_record_2.display_name)
diff --git a/addons/test_mail_full/tests/test_sms_performance.py b/addons/test_mail_full/tests/test_sms_performance.py
index 8acdf795b6a..58a1d245e09 100644
--- a/addons/test_mail_full/tests/test_sms_performance.py
+++ b/addons/test_mail_full/tests/test_sms_performance.py
@@ -51,14 +51,14 @@ class TestSMSPerformance(BaseMailPerformance, sms_common.SMSCase):
def test_message_sms_record_1_partner(self):
record = self.test_record.with_user(self.env.user)
pids = self.customer.ids
- with self.mockSMSGateway(), self.assertQueryCount(employee=23): # test_mail_enterprise: 25
+ with self.mockSMSGateway(sms_allow_unlink=True), self.assertQueryCount(employee=23): # test_mail_enterprise: 25
messages = record._message_sms(
body='Performance Test',
partner_ids=pids,
)
self.assertEqual(record.message_ids[0].body, '<p>Performance Test</p>')
- self.assertSMSNotification([{'partner': self.customer}], 'Performance Test', messages)
+ self.assertSMSNotification([{'partner': self.customer}], 'Performance Test', messages, sent_unlink=True)
@mute_logger('odoo.addons.sms.models.sms_sms')
@users('employee')
@@ -66,27 +66,27 @@ class TestSMSPerformance(BaseMailPerformance, sms_common.SMSCase):
def test_message_sms_record_10_partners(self):
record = self.test_record.with_user(self.env.user)
pids = self.partners.ids
- with self.mockSMSGateway(), self.assertQueryCount(employee=41): # test_mail_enterprise: 43
+ with self.mockSMSGateway(sms_allow_unlink=True), self.assertQueryCount(employee=41): # test_mail_enterprise: 43
messages = record._message_sms(
body='Performance Test',
partner_ids=pids,
)
self.assertEqual(record.message_ids[0].body, '<p>Performance Test</p>')
- self.assertSMSNotification([{'partner': partner} for partner in self.partners], 'Performance Test', messages)
+ self.assertSMSNotification([{'partner': partner} for partner in self.partners], 'Performance Test', messages, sent_unlink=True)
@mute_logger('odoo.addons.sms.models.sms_sms')
@users('employee')
@warmup
def test_message_sms_record_default(self):
record = self.test_record.with_user(self.env.user)
- with self.mockSMSGateway(), self.assertQueryCount(employee=26): # test_mail_enterprise: 28
+ with self.mockSMSGateway(sms_allow_unlink=True), self.assertQueryCount(employee=26): # test_mail_enterprise: 28
messages = record._message_sms(
body='Performance Test',
)
self.assertEqual(record.message_ids[0].body, '<p>Performance Test</p>')
- self.assertSMSNotification([{'partner': self.customer}], 'Performance Test', messages)
+ self.assertSMSNotification([{'partner': self.customer}], 'Performance Test', messages, sent_unlink=True)
@tagged('mail_performance')
@@ -142,7 +142,7 @@ class TestSMSMassPerformance(BaseMailPerformance, sms_common.MockSMS):
'mass_keep_log': False,
})
- with self.mockSMSGateway(), self.assertQueryCount(employee=106):
+ with self.mockSMSGateway(sms_allow_unlink=True), self.assertQueryCount(employee=106):
composer.action_send_sms()
@mute_logger('odoo.addons.sms.models.sms_sms')
@@ -159,5 +159,5 @@ class TestSMSMassPerformance(BaseMailPerformance, sms_common.MockSMS):
'mass_keep_log': True,
})
- with self.mockSMSGateway(), self.assertQueryCount(employee=157):
+ with self.mockSMSGateway(sms_allow_unlink=True), self.assertQueryCount(employee=157):
composer.action_send_sms()
diff --git a/addons/test_mail_full/tests/test_sms_post.py b/addons/test_mail_full/tests/test_sms_post.py
index e90c9c10b6b..549dd5e2cd0 100644
--- a/addons/test_mail_full/tests/test_sms_post.py
+++ b/addons/test_mail_full/tests/test_sms_post.py
@@ -390,7 +390,7 @@ class TestSMSApi(TestMailFullCommon):
self.env['mail.test.sms'].browse(self.records.ids)._message_sms_schedule_mass(body=self._test_body, mass_keep_log=False)
for record in self.records:
- self.assertSMSOutgoing(record.customer_id, None, self._test_body)
+ self.assertSMSOutgoing(record.customer_id, None, content=self._test_body)
def test_message_schedule_sms_w_log(self):
with self.with_user('employee'):
@@ -398,7 +398,7 @@ class TestSMSApi(TestMailFullCommon):
self.env['mail.test.sms'].browse(self.records.ids)._message_sms_schedule_mass(body=self._test_body, mass_keep_log=True)
for record in self.records:
- self.assertSMSOutgoing(record.customer_id, None, self._test_body)
+ self.assertSMSOutgoing(record.customer_id, None, content=self._test_body)
self.assertSMSLogged(record, self._test_body)
def test_message_schedule_sms_w_template(self):
@@ -407,7 +407,7 @@ class TestSMSApi(TestMailFullCommon):
self.env['mail.test.sms'].browse(self.records.ids)._message_sms_schedule_mass(template=self.sms_template, mass_keep_log=False)
for record in self.records:
- self.assertSMSOutgoing(record.customer_id, None, 'Dear %s this is an SMS.' % record.display_name)
+ self.assertSMSOutgoing(record.customer_id, None, content='Dear %s this is an SMS.' % record.display_name)
def test_message_schedule_sms_w_template_and_log(self):
with self.with_user('employee'):
@@ -415,5 +415,5 @@ class TestSMSApi(TestMailFullCommon):
self.env['mail.test.sms'].browse(self.records.ids)._message_sms_schedule_mass(template=self.sms_template, mass_keep_log=True)
for record in self.records:
- self.assertSMSOutgoing(record.customer_id, None, 'Dear %s this is an SMS.' % record.display_name)
+ self.assertSMSOutgoing(record.customer_id, None, content='Dear %s this is an SMS.' % record.display_name)
self.assertSMSLogged(record, 'Dear %s this is an SMS.' % record.display_name)
diff --git a/addons/test_mail_full/tests/test_sms_server_actions.py b/addons/test_mail_full/tests/test_sms_server_actions.py
index 869a61c48a0..1c06123ea4d 100644
--- a/addons/test_mail_full/tests/test_sms_server_actions.py
+++ b/addons/test_mail_full/tests/test_sms_server_actions.py
@@ -37,8 +37,8 @@ class TestServerAction(TestMailFullCommon, TestRecipients):
with self.with_user('employee'), self.mockSMSGateway():
self.action.with_user(self.env.user).with_context(**context).run()
- self.assertSMSOutgoing(self.test_record.customer_id, None, 'Dear %s this is an SMS.' % self.test_record.display_name)
- self.assertSMSOutgoing(self.env['res.partner'], self.test_numbers_san[0], 'Dear %s this is an SMS.' % self.test_record_2.display_name)
+ self.assertSMSOutgoing(self.test_record.customer_id, None, content='Dear %s this is an SMS.' % self.test_record.display_name)
+ self.assertSMSOutgoing(self.env['res.partner'], self.test_numbers_san[0], content='Dear %s this is an SMS.' % self.test_record_2.display_name)
def test_action_sms_single(self):
context = {
@@ -48,7 +48,7 @@ class TestServerAction(TestMailFullCommon, TestRecipients):
with self.with_user('employee'), self.mockSMSGateway():
self.action.with_user(self.env.user).with_context(**context).run()
- self.assertSMSOutgoing(self.test_record.customer_id, None, 'Dear %s this is an SMS.' % self.test_record.display_name)
+ self.assertSMSOutgoing(self.test_record.customer_id, None, content='Dear %s this is an SMS.' % self.test_record.display_name)
def test_action_sms_w_log(self):
self.action.sms_mass_keep_log = True
@@ -60,8 +60,8 @@ class TestServerAction(TestMailFullCommon, TestRecipients):
with self.with_user('employee'), self.mockSMSGateway():
self.action.with_user(self.env.user).with_context(**context).run()
- self.assertSMSOutgoing(self.test_record.customer_id, None, 'Dear %s this is an SMS.' % self.test_record.display_name)
+ self.assertSMSOutgoing(self.test_record.customer_id, None, content='Dear %s this is an SMS.' % self.test_record.display_name)
self.assertSMSLogged(self.test_record, 'Dear %s this is an SMS.' % self.test_record.display_name)
- self.assertSMSOutgoing(self.env['res.partner'], self.test_numbers_san[0], 'Dear %s this is an SMS.' % self.test_record_2.display_name)
+ self.assertSMSOutgoing(self.env['res.partner'], self.test_numbers_san[0], content='Dear %s this is an SMS.' % self.test_record_2.display_name)
self.assertSMSLogged(self.test_record_2, 'Dear %s this is an SMS.' % self.test_record_2.display_name)
diff --git a/addons/test_mail_full/tests/test_sms_sms.py b/addons/test_mail_full/tests/test_sms_sms.py
index f3a0fb711cc..2c009a47da6 100644
--- a/addons/test_mail_full/tests/test_sms_sms.py
+++ b/addons/test_mail_full/tests/test_sms_sms.py
@@ -146,7 +146,7 @@ class TestSMSPost(TestMailFullCommon, LinkTrackerMock):
self.env['sms.sms'].with_user(self.user_employee).browse(self.sms_all.ids).send()
def test_sms_send_delete_all(self):
- with self.mockSMSGateway(sim_error='jsonrpc_exception'):
+ with self.mockSMSGateway(sms_allow_unlink=True, sim_error='jsonrpc_exception'):
self.env['sms.sms'].browse(self.sms_all.ids).send(delete_all=True, raise_exception=False)
self.assertFalse(len(self.sms_all.exists()))