Files
odoo_source/addons/mass_mailing_sms/tests/test_mailing_controllers.py
T
aath-odoo 49cb11c058 [FIX] mass_mailing_sms: fix phone number format call when excluding number
Before this commit:
Users encountered errors when attempting to unsubscribe a phone number from
receiving SMS.

After this commit:
Now,issue has been fixed, allowing users to successfully blacklist numbers
and opt out of receiving SMS notifications. It is due to a missing parameter
when calling format method, followup of odoo/odoo@adfdf5ab33)

task-3658380

closes odoo/odoo#152638

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2024-02-27 16:16:03 +00:00

40 lines
1.5 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import werkzeug.urls
from odoo.tests.common import users
from odoo.addons.mass_mailing_sms.tests.common import MassSMSCommon
from odoo.tests import HttpCase
class TestMailingListSms(HttpCase, MassSMSCommon):
@users('user_marketing')
def test_controller_unsubscribe(self):
""" Test unsubscribe controller from a phone number, including phone
formatting and validation """
partner = self.env['res.partner'].create({
'name': 'Test Partner',
'phone': '+91 1234657890',
})
mailing = self.env['mailing.mailing'].create({
'name': 'TestMailing',
'body_plaintext': 'Coucou hibou',
'mailing_type': 'sms',
'mailing_model_id': self.env['ir.model']._get_id('res.partner'),
'mailing_domain': [('id', '=', partner.id)],
'subject': 'Test',
'sms_allow_unsubscribe': True,
})
mailing.action_send_sms()
trace = mailing.mailing_trace_ids.filtered(lambda t: t.res_id == partner.id)
self.assertTrue(trace, 'Trace not found for the partner')
unsubscribe_url = werkzeug.urls.url_join(mailing.get_base_url(), f'/sms/{mailing.id}/unsubscribe/{trace.sms_code}')
response = self.opener.get(url=unsubscribe_url, data={'sms_number': trace.sms_number})
self.assertEqual(response.status_code, 200)
self.assertTrue(partner.phone_blacklisted, 'Partner not unsubscribed')