summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Delavallée <tde@odoo.com>2019-07-18 10:43:31 +0000
committerThibault Delavallée <tde@odoo.com>2019-07-25 11:45:08 +0000
commit2e2fd3f8a74d30357d9079cf5cccb0d27d5bf4dd (patch)
tree591873ad2cdfb3814e739dba768d0bf5399ea98a
parent947715b046ff603f8684107a80bfa2e4ee59fe03 (diff)
[IMP] event: improve test class and data to help reusing them
PURPOSE Allow the user to schedule SMS communication on events SPECIFICATIONS In order to add tests this commit performs a quick cleaning of event common class to speedup and prepare new tests. Containing * move data creation in class and use savepoint; * move registration creation in its own method to allow calling it if necessary; * clean some unnecessary variables. LINKS Task 1922187 Part of PR #34705
-rw-r--r--addons/event/tests/common.py53
-rw-r--r--addons/event/tests/test_event_flow.py16
-rw-r--r--addons/event/tests/test_mail_schedule.py12
3 files changed, 44 insertions, 37 deletions
diff --git a/addons/event/tests/common.py b/addons/event/tests/common.py
index dbd142a08be..06de8639651 100644
--- a/addons/event/tests/common.py
+++ b/addons/event/tests/common.py
@@ -6,47 +6,54 @@ from odoo import fields
from odoo.tests import common
-class TestEventCommon(common.TransactionCase):
+class TestEventCommon(common.SavepointCase):
- def setUp(self):
- super(TestEventCommon, self).setUp()
-
- # Usefull models
- self.Users = self.env['res.users']
- self.Event = self.env['event.event']
- self.Registration = self.env['event.registration']
- self.EventMail = self.env['event.mail']
+ @classmethod
+ def setUpClass(cls):
+ super(TestEventCommon, cls).setUpClass()
# User groups
- self.group_employee_id = self.env['ir.model.data'].xmlid_to_res_id('base.group_user')
- self.group_event_user_id = self.env['ir.model.data'].xmlid_to_res_id('event.group_event_user')
- self.group_event_manager_id = self.env['ir.model.data'].xmlid_to_res_id('event.group_event_manager')
- group_system = self.env.ref('base.group_system')
+ cls.group_employee_id = cls.env.ref('base.group_user').id
+ cls.group_event_user_id = cls.env.ref('event.group_event_user').id
+ cls.group_event_manager_id = cls.env.ref('event.group_event_manager').id
+ cls.group_system_id = cls.env.ref('base.group_system').id
# Test users to use through the various tests
- self.user_eventuser = self.Users.with_context({'no_reset_password': True}).create({
+ cls.user_eventuser = cls.env['res.users'].with_context({'no_reset_password': True}).create({
'name': 'Armande EventUser',
'login': 'Armande',
'email': 'armande.eventuser@example.com',
'tz': 'Europe/Brussels',
- 'groups_id': [(6, 0, [self.group_employee_id, self.group_event_user_id])]
+ 'groups_id': [(6, 0, [cls.group_employee_id, cls.group_event_user_id])]
})
- self.user_eventmanager = self.Users.with_context({'no_reset_password': True}).create({
+ cls.user_eventmanager = cls.env['res.users'].with_context({'no_reset_password': True}).create({
'name': 'Bastien EventManager',
'login': 'bastien',
'email': 'bastien.eventmanager@example.com',
'tz': 'Europe/Brussels',
'groups_id': [(6, 0, [
- self.group_employee_id,
- self.group_event_manager_id,
- group_system.id])]
+ cls.group_employee_id,
+ cls.group_event_manager_id,
+ cls.group_system_id])]
})
- self.event_0 = self.env['event.event'].create({
+ cls.event_0 = cls.env['event.event'].create({
'name': 'TestEvent',
+ 'auto_confirm': True,
'date_begin': fields.Datetime.to_string(datetime.today() + timedelta(days=1)),
'date_end': fields.Datetime.to_string(datetime.today() + timedelta(days=15)),
- 'registration_ids': [(0, 0, {
- 'partner_id': self.user_eventuser.partner_id.id,
- })]
})
+
+ # set country in order to format belgium numbers
+ cls.event_0.company_id.write({'country_id': cls.env.ref('base.be').id})
+
+ @classmethod
+ def _create_registrations(cls, event, reg_count):
+ # create some registrations
+ registrations = cls.env['event.registration'].create([{
+ 'event_id': event.id,
+ 'name': 'Test Registration %s' % x,
+ 'email': '_test_reg_%s@example.com' % x,
+ 'phone': '04560000%s%s' % (x, x),
+ } for x in range(0, reg_count)])
+ return registrations
diff --git a/addons/event/tests/test_event_flow.py b/addons/event/tests/test_event_flow.py
index 08ac4654877..7a2364ac4c9 100644
--- a/addons/event/tests/test_event_flow.py
+++ b/addons/event/tests/test_event_flow.py
@@ -19,7 +19,7 @@ class TestEventFlow(TestEventCommon):
def test_00_basic_event_auto_confirm(self):
""" Basic event management with auto confirmation """
# EventUser creates a new event: ok
- test_event = self.Event.with_user(self.user_eventmanager).create({
+ test_event = self.env['event.event'].with_user(self.user_eventmanager).create({
'name': 'TestEvent',
'auto_confirm': True,
'date_begin': datetime.datetime.now() + relativedelta(days=-1),
@@ -30,13 +30,13 @@ class TestEventFlow(TestEventCommon):
self.assertEqual(test_event.state, 'confirm', 'Event: auto_confirmation of event failed')
# EventUser create registrations for this event
- test_reg1 = self.Registration.with_user(self.user_eventuser).create({
+ test_reg1 = self.env['event.registration'].with_user(self.user_eventuser).create({
'name': 'TestReg1',
'event_id': test_event.id,
})
self.assertEqual(test_reg1.state, 'open', 'Event: auto_confirmation of registration failed')
self.assertEqual(test_event.seats_reserved, 1, 'Event: wrong number of reserved seats after confirmed registration')
- test_reg2 = self.Registration.with_user(self.user_eventuser).create({
+ test_reg2 = self.env['event.registration'].with_user(self.user_eventuser).create({
'name': 'TestReg2',
'event_id': test_event.id,
})
@@ -45,7 +45,7 @@ class TestEventFlow(TestEventCommon):
# EventUser create registrations for this event: too much registrations
with self.assertRaises(ValidationError):
- self.Registration.with_user(self.user_eventuser).create({
+ self.env['event.registration'].with_user(self.user_eventuser).create({
'name': 'TestReg3',
'event_id': test_event.id,
})
@@ -70,7 +70,7 @@ class TestEventFlow(TestEventCommon):
""" Avanced event flow: no auto confirmation, manage minimum / maximum
seats, ... """
# EventUser creates a new event: ok
- test_event = self.Event.with_user(self.user_eventmanager).create({
+ test_event = self.env['event.event'].with_user(self.user_eventmanager).create({
'name': 'TestEvent',
'date_begin': datetime.datetime.now() + relativedelta(days=-1),
'date_end': datetime.datetime.now() + relativedelta(days=1),
@@ -81,7 +81,7 @@ class TestEventFlow(TestEventCommon):
'Event: new event should be in draft state, no auto confirmation')
# EventUser create registrations for this event -> no auto confirmation
- test_reg1 = self.Registration.with_user(self.user_eventuser).create({
+ test_reg1 = self.env['event.registration'].with_user(self.user_eventuser).create({
'name': 'TestReg1',
'event_id': test_event.id,
})
@@ -92,7 +92,7 @@ class TestEventFlow(TestEventCommon):
def test_event_access_rights(self):
# EventManager required to create or update events
with self.assertRaises(AccessError):
- self.Event.with_user(self.user_eventuser).create({
+ self.env['event.event'].with_user(self.user_eventuser).create({
'name': 'TestEvent',
'date_begin': datetime.datetime.now() + relativedelta(days=-1),
'date_end': datetime.datetime.now() + relativedelta(days=1),
@@ -114,9 +114,11 @@ class TestEventFlow(TestEventCommon):
event_config.execute()
def test_event_data(self):
+ self.event_0.write({'registration_ids': [(0, 0, {'partner_id': self.user_eventuser.partner_id.id})]})
self.assertEqual(self.event_0.registration_ids.get_date_range_str(), u'tomorrow')
def test_event_date_range(self):
+ self.event_0.write({'registration_ids': [(0, 0, {'partner_id': self.user_eventuser.partner_id.id})]})
self.patcher = patch('odoo.addons.event.models.event.fields.Datetime', wraps=Datetime)
self.mock_datetime = self.patcher.start()
diff --git a/addons/event/tests/test_mail_schedule.py b/addons/event/tests/test_mail_schedule.py
index 1210c33f2ac..7dcc446dc9c 100644
--- a/addons/event/tests/test_mail_schedule.py
+++ b/addons/event/tests/test_mail_schedule.py
@@ -17,7 +17,7 @@ class TestMailSchedule(TestEventCommon):
event_date_begin = now + relativedelta(days=1)
event_date_end = now + relativedelta(days=3)
- test_event = self.Event.with_user(self.user_eventmanager).create({
+ test_event = self.env['event.event'].with_user(self.user_eventmanager).create({
'name': 'TestEventMail',
'auto_confirm': True,
'date_begin': event_date_begin,
@@ -37,19 +37,19 @@ class TestMailSchedule(TestEventCommon):
})
# create some registrations
- self.Registration.with_user(self.user_eventuser).create({
+ self.env['event.registration'].with_user(self.user_eventuser).create({
'event_id': test_event.id,
'name': 'Reg0',
'email': 'reg0@example.com',
})
- self.Registration.with_user(self.user_eventuser).create({
+ self.env['event.registration'].with_user(self.user_eventuser).create({
'event_id': test_event.id,
'name': 'Reg1',
'email': 'reg1@example.com',
})
# check subscription scheduler
- schedulers = self.EventMail.search([('event_id', '=', test_event.id), ('interval_type', '=', 'after_sub')])
+ schedulers = self.env['event.mail'].search([('event_id', '=', test_event.id), ('interval_type', '=', 'after_sub')])
self.assertEqual(len(schedulers), 1, 'event: wrong scheduler creation')
self.assertEqual(schedulers[0].scheduled_date, test_event.create_date, 'event: incorrect scheduled date for checking controller')
@@ -63,7 +63,7 @@ class TestMailSchedule(TestEventCommon):
self.assertTrue(registration.mail_sent, 'event: wrongly confirmed mailing on registration')
# check before event scheduler
- schedulers = self.EventMail.search([('event_id', '=', test_event.id), ('interval_type', '=', 'before_event')])
+ schedulers = self.env['event.mail'].search([('event_id', '=', test_event.id), ('interval_type', '=', 'before_event')])
self.assertEqual(len(schedulers), 1, 'event: wrong scheduler creation')
self.assertEqual(schedulers[0].scheduled_date, event_date_begin + relativedelta(days=-1), 'event: incorrect scheduled date')
@@ -75,5 +75,3 @@ class TestMailSchedule(TestEventCommon):
mails = self.env['mail.mail'].search([('subject', 'ilike', 'TestEventMail'), ('date', '>=', now)], order='date DESC', limit=3)
self.assertEqual(len(mails), 3, 'event: wrong number of reminders in outgoing mail queue')
-
-