[IMP] test_mail_full: add some tests, notably for SMS deletion
closes odoo/odoo#75895 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
@@ -198,8 +198,8 @@ class SmsSms(models.Model):
|
||||
notifications = self.env['mail.notification'].sudo().search([
|
||||
('notification_type', '=', 'sms'),
|
||||
('sms_id', 'in', sms_ids),
|
||||
('notification_status', 'not in', ('sent', 'canceled'))]
|
||||
)
|
||||
('notification_status', 'not in', ('sent', 'canceled')),
|
||||
])
|
||||
if notifications:
|
||||
notifications.write({
|
||||
'notification_status': 'sent' if state == 'success' else 'exception',
|
||||
|
||||
@@ -43,6 +43,8 @@ class MockSMS(common.BaseCase):
|
||||
res.update(state='wrong_number_format')
|
||||
elif error and error == 'unregistered':
|
||||
res.update(state='unregistered')
|
||||
elif error and error == 'server_error':
|
||||
res.update(state='server_error')
|
||||
elif error and error == 'jsonrpc_exception':
|
||||
raise exceptions.AccessError(
|
||||
'The url that this service requested returned an error. Please contact the author of the app. The url it tried to contact was ' + local_endpoint
|
||||
|
||||
@@ -79,20 +79,22 @@ class TestSMSPost(TestMailFullCommon, MockLinkTracker):
|
||||
|
||||
sms_0 = self.env['sms.sms'].create({
|
||||
'body': 'Welcome to https://test.odoo.com',
|
||||
'number': '12',
|
||||
'number': '10',
|
||||
'mailing_id': mailing.id,
|
||||
})
|
||||
sms_1 = self.env['sms.sms'].create({
|
||||
'body': 'Welcome to https://test.odoo.com/r/RAOUL',
|
||||
'number': '12',
|
||||
'number': '11',
|
||||
})
|
||||
sms_2 = self.env['sms.sms'].create({
|
||||
'body': 'Welcome to https://test.odoo.com/r/RAOUL',
|
||||
'number': '12', 'mailing_id': mailing.id,
|
||||
'number': '12',
|
||||
'mailing_id': mailing.id,
|
||||
})
|
||||
sms_3 = self.env['sms.sms'].create({
|
||||
'body': 'Welcome to https://test.odoo.com/leodagan/r/RAOUL',
|
||||
'number': '12', 'mailing_id': mailing.id,
|
||||
'number': '13',
|
||||
'mailing_id': mailing.id,
|
||||
})
|
||||
|
||||
res = (sms_0 | sms_1 | sms_2 | sms_3)._update_body_short_links()
|
||||
@@ -123,6 +125,51 @@ class TestSMSPost(TestMailFullCommon, MockLinkTracker):
|
||||
self.env['sms.sms'].browse(self.sms_all.ids).send(unlink_failed=True, unlink_sent=True, raise_exception=False)
|
||||
self.assertFalse(len(self.sms_all.exists()))
|
||||
|
||||
def test_sms_send_delete_default(self):
|
||||
""" Test default send behavior: keep failed SMS, remove sent. """
|
||||
with self.mockSMSGateway(sms_allow_unlink=True, nbr_t_error={
|
||||
'+32456000011': 'wrong_number_format',
|
||||
'+32456000022': 'credit',
|
||||
'+32456000033': 'server_error',
|
||||
'+32456000044': 'unregistered',
|
||||
}):
|
||||
self.env['sms.sms'].browse(self.sms_all.ids).send(raise_exception=False)
|
||||
remaining = self.sms_all.exists()
|
||||
self.assertEqual(len(remaining), 4)
|
||||
self.assertTrue(all(sms.state == 'error') for sms in remaining)
|
||||
|
||||
def test_sms_send_delete_failed(self):
|
||||
with self.mockSMSGateway(sms_allow_unlink=True, nbr_t_error={
|
||||
'+32456000011': 'wrong_number_format',
|
||||
'+32456000022': 'wrong_number_format',
|
||||
}):
|
||||
self.env['sms.sms'].browse(self.sms_all.ids).send(unlink_failed=True, unlink_sent=False, raise_exception=False)
|
||||
remaining = self.sms_all.exists()
|
||||
self.assertEqual(len(remaining), 8)
|
||||
self.assertTrue(all(sms.state == 'sent') for sms in remaining)
|
||||
|
||||
def test_sms_send_delete_none(self):
|
||||
with self.mockSMSGateway(sms_allow_unlink=True, nbr_t_error={
|
||||
'+32456000011': 'wrong_number_format',
|
||||
'+32456000022': 'wrong_number_format',
|
||||
}):
|
||||
self.env['sms.sms'].browse(self.sms_all.ids).send(unlink_failed=False, unlink_sent=False, raise_exception=False)
|
||||
self.assertEqual(len(self.sms_all.exists()), 10)
|
||||
success_sms = self.sms_all[:1] + self.sms_all[3:]
|
||||
error_sms = self.sms_all[1:3]
|
||||
self.assertTrue(all(sms.state == 'sent') for sms in success_sms)
|
||||
self.assertTrue(all(sms.state == 'error') for sms in error_sms)
|
||||
|
||||
def test_sms_send_delete_sent(self):
|
||||
with self.mockSMSGateway(sms_allow_unlink=True, nbr_t_error={
|
||||
'+32456000011': 'wrong_number_format',
|
||||
'+32456000022': 'wrong_number_format',
|
||||
}):
|
||||
self.env['sms.sms'].browse(self.sms_all.ids).send(unlink_failed=False, unlink_sent=True, raise_exception=False)
|
||||
remaining = self.sms_all.exists()
|
||||
self.assertEqual(len(remaining), 2)
|
||||
self.assertTrue(all(sms.state == 'error') for sms in remaining)
|
||||
|
||||
def test_sms_send_raise(self):
|
||||
with self.assertRaises(exceptions.AccessError):
|
||||
with self.mockSMSGateway(sim_error='jsonrpc_exception'):
|
||||
|
||||
Reference in New Issue
Block a user