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') - -