diff --git a/addons/event/tests/test_event_mail_schedule.py b/addons/event/tests/test_event_mail_schedule.py index 580fd376ff5..79e0f7810d2 100644 --- a/addons/event/tests/test_event_mail_schedule.py +++ b/addons/event/tests/test_event_mail_schedule.py @@ -8,9 +8,11 @@ from freezegun import freeze_time from odoo import Command from odoo.addons.event.tests.common import EventCase from odoo.addons.mail.tests.common import MockEmail +from odoo.tests import tagged from odoo.tools import formataddr, mute_logger +@tagged('event_mail') class TestMailSchedule(EventCase, MockEmail): @mute_logger('odoo.addons.base.models.ir_model', 'odoo.models') @@ -34,11 +36,10 @@ class TestMailSchedule(EventCase, MockEmail): event_date_begin = datetime(2021, 3, 22, 8, 0, 0) event_date_end = datetime(2021, 3, 24, 18, 0, 0) - with freeze_time(now): + with self.mock_datetime_and_now(now): # create with admin to force create_date test_event = self.env['event.event'].create({ 'name': 'TestEventMail', - 'create_date': now, 'user_id': self.user_eventmanager.id, 'date_begin': event_date_begin, 'date_end': event_date_end, @@ -95,15 +96,13 @@ class TestMailSchedule(EventCase, MockEmail): self.assertEqual(event_next_scheduler.mail_count_done, 0) # create some registrations - with freeze_time(now), self.mock_mail_gateway(): + with self.mock_datetime_and_now(now), self.mock_mail_gateway(): reg1 = self.env['event.registration'].create({ - 'create_date': now, 'event_id': test_event.id, 'name': 'Reg1', 'email': 'reg1@example.com', }) reg2 = self.env['event.registration'].create({ - 'create_date': now, 'event_id': test_event.id, 'name': 'Reg2', 'email': 'reg2@example.com', @@ -211,9 +210,8 @@ class TestMailSchedule(EventCase, MockEmail): # NEW REGISTRATION EFFECT ON SCHEDULERS # -------------------------------------------------- - with freeze_time(now_start), self.mock_mail_gateway(): + with self.mock_datetime_and_now(now_start), self.mock_mail_gateway(): reg3 = self.env['event.registration'].create({ - 'create_date': now_start, 'event_id': test_event.id, 'name': 'Reg3', 'email': 'reg3@example.com', @@ -353,7 +351,7 @@ class TestMailSchedule(EventCase, MockEmail): event_date_begin = datetime(2023, 7, 26, 8, 0, 0) event_date_end = datetime(2023, 7, 28, 18, 0, 0) - with freeze_time(now): + with self.mock_datetime_and_now(now): test_event = self.env['event.event'].with_user(self.user_eventmanager).create({ 'name': 'TestEventMail', 'date_begin': event_date_begin, @@ -377,15 +375,13 @@ class TestMailSchedule(EventCase, MockEmail): event_prev_scheduler = self.env['event.mail'].search([('event_id', '=', test_event.id), ('interval_type', '=', 'before_event')]) - with freeze_time(now), self.mock_mail_gateway(): + with self.mock_datetime_and_now(now), self.mock_mail_gateway(): self.env['event.registration'].create({ - 'create_date': now, 'event_id': test_event.id, 'name': 'Reg1', 'email': 'reg1@example.com', }) self.env['event.registration'].create({ - 'create_date': now, 'event_id': test_event.id, 'name': 'Reg2', 'email': 'reg2@example.com', diff --git a/addons/test_event_full/tests/common.py b/addons/test_event_full/tests/common.py index 9c13801a0cc..5115bb648e1 100644 --- a/addons/test_event_full/tests/common.py +++ b/addons/test_event_full/tests/common.py @@ -226,14 +226,15 @@ class TestEventFullCommon(EventCrmCase, TestSalesCommon, MockVisitor): 'is_published': True, } - cls.test_event = cls.env['event.event'].create({ - 'name': 'Test Event', - 'date_begin': datetime.now() + timedelta(days=1), - 'date_end': datetime.now() + timedelta(days=5), - 'date_tz': 'Europe/Brussels', - 'event_type_id': cls.test_event_type.id, - 'is_published': True, - }) + with cls.mock_datetime_and_now(cls, cls.reference_now): + cls.test_event = cls.env['event.event'].create({ + 'name': 'Test Event', + 'date_begin': datetime.now() + timedelta(days=1), + 'date_end': datetime.now() + timedelta(days=5), + 'date_tz': 'Europe/Brussels', + 'event_type_id': cls.test_event_type.id, + 'is_published': True, + }) # update post-synchronize data ticket_1 = cls.test_event.event_ticket_ids.filtered(lambda t: t.name == 'Ticket1') ticket_2 = cls.test_event.event_ticket_ids.filtered(lambda t: t.name == 'Ticket2') diff --git a/addons/test_event_full/tests/test_event_event.py b/addons/test_event_full/tests/test_event_event.py index 97aadabb7b2..a96d3a65c17 100644 --- a/addons/test_event_full/tests/test_event_event.py +++ b/addons/test_event_full/tests/test_event_event.py @@ -77,9 +77,6 @@ class TestEventEvent(TestEventFullCommon): @freeze_time('2021-12-01 11:00:00') @users('event_user') def test_event_seats_and_schedulers(self): - now = datetime.now() # used to force create_date, as sql is not wrapped by freeze gun - self.env.cr._now = now - test_event = self.env['event.event'].browse(self.test_event.ids) ticket_1 = test_event.event_ticket_ids.filtered(lambda ticket: ticket.name == 'Ticket1') ticket_2 = test_event.event_ticket_ids.filtered(lambda ticket: ticket.name == 'Ticket2') @@ -93,14 +90,15 @@ class TestEventEvent(TestEventFullCommon): self.assertFalse(ticket_2.sale_available) # make 9 registrations (let 1 on ticket) - with self.mock_mail_gateway(): + with self.mock_datetime_and_now(self.reference_now), \ + self.mock_mail_gateway(): self.env['event.registration'].create([ - {'create_date': now, - 'email': 'test.customer.%02d@test.example.com' % x, - 'phone': '04560011%02d' % x, - 'event_id': test_event.id, - 'event_ticket_id': ticket_1.id, - 'name': 'Customer %d' % x, + { + 'email': 'test.customer.%02d@test.example.com' % x, + 'phone': '04560011%02d' % x, + 'event_id': test_event.id, + 'event_ticket_id': ticket_1.id, + 'name': 'Customer %d' % x, } for x in range(0, 9) ]) @@ -113,27 +111,29 @@ class TestEventEvent(TestEventFullCommon): self.assertEqual(ticket_2.seats_available, 0) # prevent registration due to ticket limit - with self.assertRaises(exceptions.ValidationError): + with self.mock_datetime_and_now(self.reference_now), \ + self.assertRaises(exceptions.ValidationError): self.env['event.registration'].create([ - {'create_date': now, - 'email': 'additional.customer.%02d@test.example.com' % x, - 'phone': '04560011%02d' % x, - 'event_id': test_event.id, - 'event_ticket_id': ticket_1.id, - 'name': 'Additional Customer %d' % x, + { + 'email': 'additional.customer.%02d@test.example.com' % x, + 'phone': '04560011%02d' % x, + 'event_id': test_event.id, + 'event_ticket_id': ticket_1.id, + 'name': 'Additional Customer %d' % x, } for x in range(0, 2) ]) # make 20 registrations (on free ticket) - with self.mock_mail_gateway(): + with self.mock_datetime_and_now(self.reference_now), \ + self.mock_mail_gateway(): self.env['event.registration'].create([ - {'create_date': now, - 'email': 'other.customer.%02d@test.example.com' % x, - 'phone': '04560011%02d' % x, - 'event_id': test_event.id, - 'event_ticket_id': ticket_2.id, - 'name': 'Other Customer %d' % x, + { + 'email': 'other.customer.%02d@test.example.com' % x, + 'phone': '04560011%02d' % x, + 'event_id': test_event.id, + 'event_ticket_id': ticket_2.id, + 'name': 'Other Customer %d' % x, } for x in range(0, 20) ]) @@ -144,14 +144,15 @@ class TestEventEvent(TestEventFullCommon): self.assertEqual(ticket_2.seats_available, 0) # prevent registration due to event limit - with self.assertRaises(exceptions.ValidationError): + with self.mock_datetime_and_now(self.reference_now), \ + self.assertRaises(exceptions.ValidationError): self.env['event.registration'].create([ - {'create_date': now, - 'email': 'additional.customer.%02d@test.example.com' % x, - 'phone': '04560011%02d' % x, - 'event_id': test_event.id, - 'event_ticket_id': ticket_2.id, - 'name': 'Additional Customer %d' % x, + { + 'email': 'additional.customer.%02d@test.example.com' % x, + 'phone': '04560011%02d' % x, + 'event_id': test_event.id, + 'event_ticket_id': ticket_2.id, + 'name': 'Additional Customer %d' % x, } for x in range(0, 2) ]) diff --git a/addons/test_event_full/tests/test_event_mail.py b/addons/test_event_full/tests/test_event_mail.py index 835a759cd9d..30c2766e804 100644 --- a/addons/test_event_full/tests/test_event_mail.py +++ b/addons/test_event_full/tests/test_event_mail.py @@ -3,11 +3,13 @@ from odoo.addons.test_event_full.tests.common import TestWEventCommon from odoo.exceptions import ValidationError +from odoo.tests import tagged + +@tagged('event_mail') class TestTemplateRefModel(TestWEventCommon): def test_template_ref_model_constraint(self): - test_cases = [ ('mail', 'mail.template', True), ('mail', 'sms.template', False),