110 lines
5.2 KiB
Python
110 lines
5.2 KiB
Python
from odoo.addons.sms.tests.common import SMSCommon
|
|
from odoo.addons.test_mail_sms.tests.common import TestSMSRecipients
|
|
from odoo.tests import Form, tagged
|
|
|
|
|
|
@tagged('sms_composer')
|
|
class TestSMSNoThread(SMSCommon, TestSMSRecipients):
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
cls._test_body_dyn = 'Hello {{ object.name }} zizisse an SMS.'
|
|
cls._test_body_sta = 'Hello Zboing'
|
|
cls.test_nothreads = cls.env['sms.test.nothread'].create([
|
|
{
|
|
'name': 'Test',
|
|
'customer_id': cls.partner_1.id,
|
|
}, {
|
|
'name': 'Test',
|
|
'customer_id': cls.partner_2.id,
|
|
}, {
|
|
'name': 'Test (no partner)',
|
|
'customer_id': False,
|
|
},
|
|
])
|
|
cls.sms_template = cls._create_sms_template(
|
|
cls.test_nothreads._name,
|
|
body=cls._test_body_dyn,
|
|
)
|
|
|
|
def test_composer_comment(self):
|
|
with self.with_user('employee'):
|
|
test_record = self.test_nothreads[0].with_env(self.env)
|
|
composer_form = Form(self.env['sms.composer'].with_context(
|
|
default_res_id=test_record.id,
|
|
default_res_model=test_record._name,
|
|
))
|
|
composer_form.body = self._test_body_sta
|
|
composer = composer_form.save()
|
|
self.assertTrue(composer.comment_single_recipient)
|
|
self.assertEqual(composer.composition_mode, 'comment')
|
|
self.assertEqual(composer.recipient_valid_count, 0)
|
|
self.assertEqual(composer.recipient_invalid_count, 1)
|
|
self.assertEqual(composer.recipient_single_description, self.partner_1.name)
|
|
self.assertEqual(composer.recipient_single_number, '+32456001122')
|
|
self.assertEqual(composer.recipient_single_number_itf, '+32456001122')
|
|
self.assertTrue(composer.recipient_single_valid)
|
|
self.assertEqual(composer.number_field_name, 'mobile')
|
|
self.assertFalse(composer.numbers)
|
|
self.assertFalse(composer.sanitized_numbers)
|
|
|
|
with self.mockSMSGateway():
|
|
composer._action_send_sms()
|
|
|
|
def test_composer_comment_res_ids(self):
|
|
with self.with_user('employee'):
|
|
test_record = self.test_nothreads[0].with_env(self.env)
|
|
composer_form = Form(self.env['sms.composer'].with_context(
|
|
default_res_ids=test_record.ids,
|
|
default_res_model=test_record._name,
|
|
))
|
|
composer_form.body = self._test_body_sta
|
|
composer = composer_form.save()
|
|
# TDE FIXME: mono/mass mode should be fixed
|
|
self.assertFalse(composer.comment_single_recipient)
|
|
self.assertEqual(composer.composition_mode, 'comment')
|
|
self.assertEqual(composer.recipient_valid_count, 1)
|
|
self.assertEqual(composer.recipient_invalid_count, 0)
|
|
self.assertFalse(composer.recipient_single_description)
|
|
self.assertFalse(composer.recipient_single_number)
|
|
self.assertFalse(composer.recipient_single_number_itf)
|
|
self.assertFalse(composer.recipient_single_valid)
|
|
self.assertFalse(composer.number_field_name)
|
|
self.assertFalse(composer.numbers)
|
|
self.assertFalse(composer.sanitized_numbers)
|
|
|
|
with self.mockSMSGateway():
|
|
composer._action_send_sms()
|
|
|
|
def test_composer_comment_res_users(self):
|
|
for ctx, expected in [
|
|
({}, {}),
|
|
({'default_number_field_name': 'mobile'}, {}),
|
|
]:
|
|
with self.subTest(ctx=ctx):
|
|
with self.with_user('employee'):
|
|
ctx['default_res_id'] = self.user_admin.id
|
|
ctx['default_res_model'] = self.user_admin._name
|
|
composer_form = Form(self.env['sms.composer'].with_context(**ctx))
|
|
composer_form.body = self._test_body_sta
|
|
composer = composer_form.save()
|
|
self.assertTrue(composer.comment_single_recipient)
|
|
self.assertEqual(composer.composition_mode, 'comment')
|
|
if ctx.get('default_number_field_name') == 'mobile':
|
|
self.assertEqual(composer.recipient_valid_count, 0)
|
|
self.assertEqual(composer.recipient_invalid_count, 1)
|
|
else:
|
|
self.assertEqual(composer.recipient_valid_count, 1)
|
|
self.assertEqual(composer.recipient_invalid_count, 0)
|
|
self.assertEqual(composer.recipient_single_description, self.user_admin.name)
|
|
self.assertEqual(composer.recipient_single_number, '+32455135790')
|
|
self.assertEqual(composer.recipient_single_number_itf, '+32455135790')
|
|
self.assertTrue(composer.recipient_single_valid)
|
|
self.assertEqual(composer.number_field_name, ctx.get('default_number_field_name', 'phone'))
|
|
self.assertFalse(composer.numbers)
|
|
self.assertFalse(composer.sanitized_numbers)
|
|
|
|
with self.mockSMSGateway():
|
|
composer._action_send_sms()
|