mirror of
https://github.com/bringout/oca-ocb-mail.git
synced 2026-04-23 03:02:01 +02:00
Initial commit: Mail packages
This commit is contained in:
commit
4e53507711
1948 changed files with 751201 additions and 0 deletions
|
|
@ -0,0 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import test_calendar_sms
|
||||
|
|
@ -0,0 +1,116 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
from odoo import fields
|
||||
from odoo.addons.sms.tests.common import SMSCase
|
||||
from odoo.tests.common import TransactionCase
|
||||
|
||||
|
||||
class TestCalendarSms(TransactionCase, SMSCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(TestCalendarSms, cls).setUpClass()
|
||||
|
||||
now = fields.datetime.now()
|
||||
|
||||
cls.partner_phone = cls.env['res.partner'].create({
|
||||
'name': 'Partner With Phone Number',
|
||||
'phone': '0477777777',
|
||||
'country_id': cls.env.ref('base.be').id,
|
||||
})
|
||||
|
||||
cls.partner_phone_2 = cls.env['res.partner'].create({
|
||||
'name': 'Partner With Phone Number',
|
||||
'phone': '0488888888',
|
||||
'country_id': cls.env.ref('base.be').id,
|
||||
})
|
||||
|
||||
cls.partner_phone_3 = cls.env['res.partner'].create({
|
||||
'name': 'Partner With Phone Number',
|
||||
'phone': '0499999999',
|
||||
'country_id': cls.env.ref('base.be').id,
|
||||
})
|
||||
|
||||
cls.partner_no_phone = cls.env['res.partner'].create({
|
||||
'name': 'Partner With No Phone Number',
|
||||
'country_id': cls.env.ref('base.be').id,
|
||||
})
|
||||
|
||||
cls.alarm_1h = cls.env['calendar.alarm'].create({
|
||||
'name': 'Reminder 1 Hour',
|
||||
'duration': 1,
|
||||
'interval': 'hours',
|
||||
'alarm_type': 'sms',
|
||||
})
|
||||
cls.alarm_24h = cls.env['calendar.alarm'].create({
|
||||
'name': 'Reminder 24 Hours',
|
||||
'duration': 24,
|
||||
'interval': 'hours',
|
||||
'alarm_type': 'sms',
|
||||
})
|
||||
|
||||
cls.event_1h = cls.env['calendar.event'].create({
|
||||
'name': 'Event in 1h',
|
||||
'start': now + timedelta(hours=1),
|
||||
'stop': now + timedelta(hours=2),
|
||||
'alarm_ids': [(4, cls.alarm_1h.id), (4, cls.alarm_24h.id)],
|
||||
'attendee_ids': [(0, 0, {'partner_id': cls.partner_phone.id})],
|
||||
})
|
||||
|
||||
cls.event_1h_dup = cls.env['calendar.event'].create({
|
||||
'name': 'Event in 1h',
|
||||
'start': now + timedelta(hours=1),
|
||||
'stop': now + timedelta(hours=2),
|
||||
'alarm_ids': [(4, cls.alarm_1h.id), (4, cls.alarm_24h.id)],
|
||||
'attendee_ids': [(0, 0, {'partner_id': cls.partner_phone_3.id})],
|
||||
})
|
||||
|
||||
cls.event_24h = cls.env['calendar.event'].create({
|
||||
'name': 'Event in 24h',
|
||||
'start': now + timedelta(hours=24),
|
||||
'stop': now + timedelta(hours=25),
|
||||
'alarm_ids': [(4, cls.alarm_1h.id), (4, cls.alarm_24h.id)],
|
||||
'attendee_ids': [(0, 0, {'partner_id': cls.partner_phone_2.id})],
|
||||
})
|
||||
|
||||
cls.sms_template_1h = cls.env['sms.template'].create({
|
||||
'name': 'Calendar Alarm SMS Template',
|
||||
'body': 'Reminder: Your event is starting in 1 hour!',
|
||||
'model_id': cls.env['ir.model']._get('calendar.event').id,
|
||||
})
|
||||
|
||||
cls.alarm_1h.sms_template_id = cls.sms_template_1h.id
|
||||
|
||||
cls.sms_template_24h = cls.env['sms.template'].create({
|
||||
'name': 'Calendar Alarm SMS Template',
|
||||
'body': 'Reminder: Your event is starting in 24 hour!',
|
||||
'model_id': cls.env['ir.model']._get('calendar.event').id,
|
||||
})
|
||||
cls.alarm_24h.sms_template_id = cls.sms_template_24h.id
|
||||
|
||||
def test_attendees_with_number(self):
|
||||
"""Test if only partners with sanitized number are returned."""
|
||||
attendees = self.env['calendar.event'].create({
|
||||
'name': "Boostrap vs Foundation",
|
||||
'start': datetime(2022, 1, 1, 11, 11),
|
||||
'stop': datetime(2022, 2, 2, 22, 22),
|
||||
'partner_ids': [(6, 0, [self.partner_phone.id, self.partner_no_phone.id])],
|
||||
})._sms_get_default_partners()
|
||||
self.assertEqual(len(attendees), 1, "There should be only one partner retrieved")
|
||||
|
||||
def test_send_reminder_match_both_events(self):
|
||||
"""
|
||||
Test that only the necessary SMS messages are sent,
|
||||
with each SMS template correctly matching its corresponding alarm duration and the event.
|
||||
"""
|
||||
with self.mockSMSGateway():
|
||||
lastcall = fields.Datetime.now() - timedelta(hours=1)
|
||||
self.env['calendar.alarm_manager'].with_context(lastcall=lastcall)._send_reminder()
|
||||
|
||||
self.assertEqual(len(self._sms), 3)
|
||||
self.assertSMS(self.partner_phone, self.partner_phone.phone_sanitized, 'sent',
|
||||
content=self.sms_template_1h.body)
|
||||
self.assertSMS(self.partner_phone_2, self.partner_phone_2.phone_sanitized, 'sent',
|
||||
content=self.sms_template_24h.body)
|
||||
Loading…
Add table
Add a link
Reference in a new issue