111 lines
5.4 KiB
Python
111 lines
5.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.addons.test_mail_sms.tests.common import TestSMSCommon, TestSMSRecipients
|
|
from odoo.tests import tagged, users
|
|
|
|
|
|
@tagged('mail_thread')
|
|
class TestSMSActionsCommon(TestSMSCommon, TestSMSRecipients):
|
|
""" Test mail.thread.phone mixin, its tools and API """
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
cls.test_phone_records, cls.test_phone_partners = cls._create_records_for_batch(
|
|
'mail.test.sms.bl',
|
|
5,
|
|
)
|
|
cls.test_phone_records += cls.env['mail.test.sms.bl'].create([
|
|
{
|
|
'phone_nbr': '+32475110505',
|
|
'mobile_nbr': '+32475000505',
|
|
}, {
|
|
'phone_nbr': '0032475110606',
|
|
'mobile_nbr': '0032475000606',
|
|
}, {
|
|
'phone_nbr': '0032475110707',
|
|
'mobile_nbr': False,
|
|
}, {
|
|
'phone_nbr': False,
|
|
'mobile_nbr': False,
|
|
},
|
|
])
|
|
|
|
def test_initial_data(self):
|
|
""" Test initial data for this class, allowing to be sure of I/O of tests. """
|
|
self.assertEqual(
|
|
self.test_phone_records.mapped('mobile_nbr'),
|
|
['0475000000', '0475000101', '0475000202', '0475000303', '0475000404',
|
|
'+32475000505', '0032475000606',
|
|
False, False,
|
|
]
|
|
)
|
|
self.assertEqual(
|
|
self.test_phone_records.mapped('phone_nbr'),
|
|
[False] * 5 + ['+32475110505', '0032475110606', '0032475110707', False]
|
|
)
|
|
|
|
@users('employee')
|
|
def test_search_phone_mobile_search_boolean(self):
|
|
test_phone_records = self.test_phone_records.with_env(self.env)
|
|
|
|
# test Falsy -> is set / is not set
|
|
for test_values in [False, '', ' ']:
|
|
# test is not set -> both fields should be not set
|
|
results = self.env['mail.test.sms.bl'].search([('phone_mobile_search', '=', test_values)])
|
|
self.assertEqual(results, test_phone_records[-1],
|
|
'Search on phone_mobile_search: = False: record with two void values')
|
|
# test is set -> at least one field should be set
|
|
results = self.env['mail.test.sms.bl'].search([('phone_mobile_search', '!=', test_values)])
|
|
self.assertEqual(results, test_phone_records[:-1],
|
|
'Search on phone_mobile_search: != False: record at least one value set')
|
|
|
|
# test Truthy -> is set / is not set
|
|
results = self.env['mail.test.sms.bl'].search([('phone_mobile_search', '=', True)])
|
|
self.assertEqual(results, test_phone_records[:-1],
|
|
'Search on phone_mobile_search: = True: record at least one value set')
|
|
results = self.env['mail.test.sms.bl'].search([('phone_mobile_search', '!=', True)])
|
|
self.assertEqual(results, test_phone_records[-1],
|
|
'Search on phone_mobile_search: != True: record with two void values')
|
|
|
|
@users('employee')
|
|
def test_search_phone_mobile_search_equal(self):
|
|
""" Test searching by phone/mobile with direct search """
|
|
test_phone_records = self.test_phone_records.with_env(self.env)
|
|
|
|
# test "=" search
|
|
results = self.env['mail.test.sms.bl'].search([('phone_mobile_search', '=', '0475')])
|
|
self.assertFalse(results, 'Search on phone_mobile_search: = should return only matching results')
|
|
results = self.env['mail.test.sms.bl'].search([('phone_mobile_search', '=', '0475000000')])
|
|
self.assertEqual(results, test_phone_records[0])
|
|
results = self.env['mail.test.sms.bl'].search([('phone_mobile_search', '=', '0032475110606')])
|
|
self.assertEqual(results, test_phone_records[6])
|
|
results = self.env['mail.test.sms.bl'].search([('phone_mobile_search', '=', '+32475110606')])
|
|
self.assertEqual(results, test_phone_records[6])
|
|
|
|
@users('employee')
|
|
def test_search_phone_mobile_search_ilike(self):
|
|
""" Test searching by phone/mobile on various ilike combinations """
|
|
test_phone_records = self.test_phone_records.with_env(self.env)
|
|
|
|
# test ilike search
|
|
results = self.env['mail.test.sms.bl'].search([('phone_mobile_search', 'ilike', '0475')])
|
|
self.assertEqual(results, test_phone_records[:5])
|
|
results = self.env['mail.test.sms.bl'].search([('phone_mobile_search', 'ilike', '101')])
|
|
self.assertEqual(results, test_phone_records[1])
|
|
|
|
# test search using +32/0032
|
|
results = self.env['mail.test.sms.bl'].search([('phone_mobile_search', 'ilike', '+32475')])
|
|
self.assertEqual(results, test_phone_records[5:8],
|
|
'Search on phone_mobile_search: +32/0032 likeliness')
|
|
results = self.env['mail.test.sms.bl'].search([('phone_mobile_search', 'ilike', '0032475')])
|
|
self.assertEqual(results, test_phone_records[5:8],
|
|
'Search on phone_mobile_search: +32/0032 likeliness')
|
|
|
|
# test inverse ilike search
|
|
results = self.env['mail.test.sms.bl'].search([('phone_mobile_search', 'not ilike', '0475')])
|
|
self.assertEqual(results, test_phone_records - test_phone_records[:5])
|
|
results = self.env['mail.test.sms.bl'].search([('phone_mobile_search', 'not ilike', '101')])
|
|
self.assertEqual(results, test_phone_records - test_phone_records[1])
|