[REF] event(_*): clean tests common files
Purpose is to have a common event class for users and useful stuff (customers, products, ...) but lessen usage of common test data through sub modules. Indeed having a "global event type" test data updated in various addons is actually complicated to maintain. Sub add-ons are updated to use mainly the ``EventCase`` test class holding users and side data. Data specific to those modules (event type with some specific configuration notably) is created and used in tests in the given module only, and not through generic event_type_complex and event_0 test data anymore. With this commit tests are more localized to their add-on and modifying data in a given add-on has less chances to have unwanted side effect in other event submodules unit tests. Task-2703285 (Event performance improvements) Task-2703289 (Event testing and coverage) Part-of: odoo/odoo#81068
This commit is contained in:
@@ -1,52 +1,79 @@
|
||||
# -*- 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.mail.tests.common import mail_new_test_user
|
||||
from odoo.tests import common
|
||||
|
||||
|
||||
class TestEventCommon(common.TransactionCase):
|
||||
class EventCase(common.TransactionCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(TestEventCommon, cls).setUpClass()
|
||||
super(EventCase, cls).setUpClass()
|
||||
|
||||
cls.admin_user = cls.env.ref('base.user_admin')
|
||||
cls.admin_user.write({
|
||||
'country_id': cls.env.ref('base.be').id,
|
||||
'login': 'admin',
|
||||
'notification_type': 'inbox',
|
||||
})
|
||||
cls.company_admin = cls.admin_user.company_id
|
||||
# set country in order to format Belgian numbers
|
||||
cls.company_admin.write({
|
||||
'country_id': cls.env.ref('base.be').id,
|
||||
})
|
||||
|
||||
# Test users to use through the various tests
|
||||
cls.user_portal = mail_new_test_user(
|
||||
cls.env, login='portal_test',
|
||||
name='Patrick Portal', email='patrick.portal@test.example.com',
|
||||
notification_type='email', company_id=cls.env.ref("base.main_company").id,
|
||||
groups='base.group_portal')
|
||||
cls.env,
|
||||
company_id=cls.company_admin.id,
|
||||
email='patrick.portal@test.example.com',
|
||||
groups='base.group_portal',
|
||||
login='portal_test',
|
||||
name='Patrick Portal',
|
||||
notification_type='email',
|
||||
tz='Europe/Brussels',
|
||||
)
|
||||
cls.user_employee = mail_new_test_user(
|
||||
cls.env, login='user_employee',
|
||||
name='Eglantine Employee', email='eglantine.employee@test.example.com',
|
||||
tz='Europe/Brussels', notification_type='inbox',
|
||||
company_id=cls.env.ref("base.main_company").id,
|
||||
cls.env,
|
||||
company_id=cls.company_admin.id,
|
||||
email='eglantine.employee@test.example.com',
|
||||
groups='base.group_user',
|
||||
login='user_employee',
|
||||
name='Eglantine Employee',
|
||||
notification_type='inbox',
|
||||
tz='Europe/Brussels',
|
||||
)
|
||||
cls.user_eventregistrationdesk = mail_new_test_user(
|
||||
cls.env, login='user_eventregistrationdesk',
|
||||
name='Ursule EventRegistration', email='ursule.eventregistration@test.example.com',
|
||||
tz='Europe/Brussels', notification_type='inbox',
|
||||
company_id=cls.env.ref("base.main_company").id,
|
||||
cls.env,
|
||||
company_id=cls.company_admin.id,
|
||||
email='ursule.eventregistration@test.example.com',
|
||||
login='user_eventregistrationdesk',
|
||||
groups='base.group_user,event.group_event_registration_desk',
|
||||
name='Ursule EventRegistration',
|
||||
notification_type='inbox',
|
||||
tz='Europe/Brussels',
|
||||
)
|
||||
cls.user_eventuser = mail_new_test_user(
|
||||
cls.env, login='user_eventuser',
|
||||
name='Ursule EventUser', email='ursule.eventuser@test.example.com',
|
||||
tz='Europe/Brussels', notification_type='inbox',
|
||||
company_id=cls.env.ref("base.main_company").id,
|
||||
cls.env,
|
||||
company_id=cls.company_admin.id,
|
||||
email='ursule.eventuser@test.example.com',
|
||||
groups='base.group_user,event.group_event_user',
|
||||
login='user_eventuser',
|
||||
name='Ursule EventUser',
|
||||
notification_type='inbox',
|
||||
tz='Europe/Brussels',
|
||||
)
|
||||
cls.user_eventmanager = mail_new_test_user(
|
||||
cls.env, login='user_eventmanager',
|
||||
name='Martine EventManager', email='martine.eventmanager@test.example.com',
|
||||
tz='Europe/Brussels', notification_type='inbox',
|
||||
company_id=cls.env.ref("base.main_company").id,
|
||||
cls.env,
|
||||
company_id=cls.company_admin.id,
|
||||
email='martine.eventmanager@test.example.com',
|
||||
groups='base.group_user,event.group_event_manager',
|
||||
login='user_eventmanager',
|
||||
name='Martine EventManager',
|
||||
notification_type='inbox',
|
||||
tz='Europe/Brussels',
|
||||
)
|
||||
|
||||
cls.event_customer = cls.env['res.partner'].create({
|
||||
@@ -64,41 +91,6 @@ class TestEventCommon(common.TransactionCase):
|
||||
'mobile': '0456654321',
|
||||
})
|
||||
|
||||
cls.event_type_complex = cls.env['event.type'].create({
|
||||
'name': 'Update Type',
|
||||
'auto_confirm': True,
|
||||
'has_seats_limitation': True,
|
||||
'seats_max': 30,
|
||||
'default_timezone': 'Europe/Paris',
|
||||
'event_type_ticket_ids': [(0, 0, {
|
||||
'name': 'First Ticket',
|
||||
}), (0, 0, {
|
||||
'name': 'Second Ticket',
|
||||
})
|
||||
],
|
||||
'event_type_mail_ids': [
|
||||
(0, 0, { # right at subscription
|
||||
'interval_unit': 'now',
|
||||
'interval_type': 'after_sub',
|
||||
'template_ref': 'mail.template,%i' % cls.env['ir.model.data']._xmlid_to_res_id('event.event_subscription')}),
|
||||
(0, 0, { # 1 days before event
|
||||
'interval_nbr': 1,
|
||||
'interval_unit': 'days',
|
||||
'interval_type': 'before_event',
|
||||
'template_ref': 'mail.template,%i' % cls.env['ir.model.data']._xmlid_to_res_id('event.event_reminder')}),
|
||||
],
|
||||
})
|
||||
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)),
|
||||
'date_tz': 'Europe/Brussels',
|
||||
})
|
||||
|
||||
# set country in order to format Belgian 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
|
||||
|
||||
@@ -5,12 +5,12 @@ import datetime
|
||||
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
from odoo.addons.event.tests.common import TestEventCommon
|
||||
from odoo.addons.event.tests.common import EventCase
|
||||
from odoo.exceptions import ValidationError
|
||||
from odoo.tools import mute_logger
|
||||
|
||||
|
||||
class TestEventFlow(TestEventCommon):
|
||||
class TestEventFlow(EventCase):
|
||||
|
||||
@mute_logger('odoo.addons.base.models.ir_model', 'odoo.models')
|
||||
def test_event_auto_confirm(self):
|
||||
|
||||
@@ -1,63 +1,95 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from datetime import date, datetime, timedelta
|
||||
from unittest.mock import patch
|
||||
from datetime import datetime, timedelta
|
||||
from freezegun import freeze_time
|
||||
|
||||
from odoo import Command
|
||||
from odoo.addons.event.tests.common import TestEventCommon
|
||||
from odoo.addons.event.tests.common import EventCase
|
||||
from odoo import exceptions
|
||||
from odoo.fields import Datetime as FieldsDatetime, Date as FieldsDate
|
||||
from odoo.fields import Datetime as FieldsDatetime
|
||||
from odoo.tests.common import users, Form
|
||||
from odoo.tools import mute_logger
|
||||
|
||||
|
||||
class TestEventData(TestEventCommon):
|
||||
class TestEventInternalsCommon(EventCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(TestEventData, cls).setUpClass()
|
||||
cls.patcher = patch('odoo.addons.event.models.event_event.fields.Datetime', wraps=FieldsDatetime)
|
||||
cls.mock_datetime = cls.patcher.start()
|
||||
cls.mock_datetime.now.return_value = datetime(2020, 1, 31, 10, 0, 0)
|
||||
cls.addClassCleanup(cls.patcher.stop)
|
||||
super(TestEventInternalsCommon, cls).setUpClass()
|
||||
|
||||
cls.event_0.write({
|
||||
'date_begin': datetime(2020, 2, 1, 8, 30, 0),
|
||||
'date_end': datetime(2020, 2, 4, 18, 45, 0),
|
||||
cls.event_type_complex = cls.env['event.type'].create({
|
||||
'name': 'Update Type',
|
||||
'auto_confirm': True,
|
||||
'has_seats_limitation': True,
|
||||
'seats_max': 30,
|
||||
'default_timezone': 'Europe/Paris',
|
||||
'event_type_ticket_ids': [
|
||||
(0, 0, {'name': 'First Ticket',}),
|
||||
(0, 0, {'name': 'Second Ticket',}),
|
||||
],
|
||||
'event_type_mail_ids': [
|
||||
(0, 0, { # right at subscription
|
||||
'interval_unit': 'now',
|
||||
'interval_type': 'after_sub',
|
||||
'template_ref': 'mail.template,%i' % cls.env['ir.model.data']._xmlid_to_res_id('event.event_subscription')}),
|
||||
(0, 0, { # 1 days before event
|
||||
'interval_nbr': 1,
|
||||
'interval_unit': 'days',
|
||||
'interval_type': 'before_event',
|
||||
'template_ref': 'mail.template,%i' % cls.env['ir.model.data']._xmlid_to_res_id('event.event_reminder')}),
|
||||
],
|
||||
})
|
||||
|
||||
# Mock dates to have reproducible computed fields based on time
|
||||
cls.reference_now = datetime(2020, 1, 31, 10, 0, 0)
|
||||
cls.reference_beg = datetime(2020, 2, 1, 8, 30, 0)
|
||||
cls.reference_end = datetime(2020, 2, 4, 18, 45, 0)
|
||||
|
||||
cls.event_0 = cls.env['event.event'].create({
|
||||
'auto_confirm': True,
|
||||
'date_begin': cls.reference_beg,
|
||||
'date_end': cls.reference_end,
|
||||
'date_tz': 'Europe/Brussels',
|
||||
'name': 'TestEvent',
|
||||
})
|
||||
|
||||
|
||||
class TestEventData(TestEventInternalsCommon):
|
||||
|
||||
@users('user_eventmanager')
|
||||
def test_event_date_computation(self):
|
||||
event = self.event_0.with_user(self.env.user)
|
||||
event.write({
|
||||
'registration_ids': [(0, 0, {'partner_id': self.event_customer.id, 'name': 'test_reg'})],
|
||||
'date_begin': datetime(2020, 1, 31, 15, 0, 0),
|
||||
'date_end': datetime(2020, 4, 5, 18, 0, 0),
|
||||
})
|
||||
registration = event.registration_ids[0]
|
||||
self.assertEqual(registration.get_date_range_str(), u'today')
|
||||
with freeze_time(self.reference_now):
|
||||
event.write({
|
||||
'registration_ids': [(0, 0, {'partner_id': self.event_customer.id, 'name': 'test_reg'})],
|
||||
'date_begin': datetime(2020, 1, 31, 15, 0, 0),
|
||||
'date_end': datetime(2020, 4, 5, 18, 0, 0),
|
||||
})
|
||||
registration = event.registration_ids[0]
|
||||
self.assertEqual(registration.get_date_range_str(), u'today')
|
||||
|
||||
event.date_begin = datetime(2020, 2, 1, 15, 0, 0)
|
||||
self.assertEqual(registration.get_date_range_str(), u'tomorrow')
|
||||
event.date_begin = datetime(2020, 2, 1, 15, 0, 0)
|
||||
self.assertEqual(registration.get_date_range_str(), u'tomorrow')
|
||||
|
||||
event.date_begin = datetime(2020, 2, 2, 6, 0, 0)
|
||||
self.assertEqual(registration.get_date_range_str(), u'in 2 days')
|
||||
event.date_begin = datetime(2020, 2, 2, 6, 0, 0)
|
||||
self.assertEqual(registration.get_date_range_str(), u'in 2 days')
|
||||
|
||||
event.date_begin = datetime(2020, 2, 20, 17, 0, 0)
|
||||
self.assertEqual(registration.get_date_range_str(), u'next month')
|
||||
event.date_begin = datetime(2020, 2, 20, 17, 0, 0)
|
||||
self.assertEqual(registration.get_date_range_str(), u'next month')
|
||||
|
||||
event.date_begin = datetime(2020, 3, 1, 10, 0, 0)
|
||||
self.assertEqual(registration.get_date_range_str(), u'on Mar 1, 2020, 11:00:00 AM')
|
||||
event.date_begin = datetime(2020, 3, 1, 10, 0, 0)
|
||||
self.assertEqual(registration.get_date_range_str(), u'on Mar 1, 2020, 11:00:00 AM')
|
||||
|
||||
# Is actually 8:30 to 20:00 in Mexico
|
||||
event.write({
|
||||
'date_begin': datetime(2020, 1, 31, 14, 30, 0),
|
||||
'date_end': datetime(2020, 2, 1, 2, 0, 0),
|
||||
'date_tz': 'Mexico/General'
|
||||
})
|
||||
self.assertTrue(event.is_one_day)
|
||||
# Is actually 8:30 to 20:00 in Mexico
|
||||
event.write({
|
||||
'date_begin': datetime(2020, 1, 31, 14, 30, 0),
|
||||
'date_end': datetime(2020, 2, 1, 2, 0, 0),
|
||||
'date_tz': 'Mexico/General'
|
||||
})
|
||||
self.assertTrue(event.is_one_day)
|
||||
|
||||
@freeze_time('2020-1-31 10:00:00')
|
||||
@users('user_eventmanager')
|
||||
def test_event_date_timezone(self):
|
||||
event = self.event_0.with_user(self.env.user)
|
||||
@@ -349,6 +381,7 @@ class TestEventData(TestEventCommon):
|
||||
templates = self.env['mail.template'].with_context(filter_template_on_event=True).name_search('test template')
|
||||
self.assertEqual(len(templates), 1, 'Should return only mail templates related to the event registration model')
|
||||
|
||||
@freeze_time('2020-1-31 10:00:00')
|
||||
@users('user_eventmanager')
|
||||
def test_event_registrable(self):
|
||||
"""Test if `_compute_event_registrations_open` works properly."""
|
||||
@@ -401,6 +434,7 @@ class TestEventData(TestEventCommon):
|
||||
self.assertTrue(ticket.is_expired)
|
||||
self.assertFalse(event.event_registrations_open)
|
||||
|
||||
@freeze_time('2020-1-31 10:00:00')
|
||||
@users('user_eventmanager')
|
||||
def test_event_ongoing(self):
|
||||
event_1 = self.env['event.event'].create({
|
||||
@@ -475,7 +509,7 @@ class TestEventData(TestEventCommon):
|
||||
self.assertEqual(event.seats_expected, 7)
|
||||
|
||||
|
||||
class TestEventRegistrationData(TestEventCommon):
|
||||
class TestEventRegistrationData(TestEventInternalsCommon):
|
||||
|
||||
@users('user_eventmanager')
|
||||
def test_registration_partner_sync(self):
|
||||
@@ -569,22 +603,9 @@ class TestEventRegistrationData(TestEventCommon):
|
||||
self.assertEqual(new_reg.phone, contact.phone)
|
||||
|
||||
|
||||
class TestEventTicketData(TestEventCommon):
|
||||
|
||||
def setUp(self):
|
||||
super(TestEventTicketData, self).setUp()
|
||||
self.ticket_date_patcher = patch('odoo.addons.event.models.event_ticket.fields.Date', wraps=FieldsDate)
|
||||
self.ticket_date_patcher_mock = self.ticket_date_patcher.start()
|
||||
self.ticket_date_patcher_mock.context_today.return_value = date(2020, 1, 31)
|
||||
self.ticket_datetime_patcher = patch('odoo.addons.event.models.event_ticket.fields.Datetime', wraps=FieldsDatetime)
|
||||
self.ticket_datetime_patcher_mock = self.ticket_datetime_patcher.start()
|
||||
self.ticket_datetime_patcher_mock.now.return_value = datetime(2020, 1, 31, 10, 0, 0)
|
||||
|
||||
def tearDown(self):
|
||||
super(TestEventTicketData, self).tearDown()
|
||||
self.ticket_date_patcher.stop()
|
||||
self.ticket_datetime_patcher.stop()
|
||||
class TestEventTicketData(TestEventInternalsCommon):
|
||||
|
||||
@freeze_time('2020-1-31 10:00:00')
|
||||
@users('user_eventmanager')
|
||||
def test_event_ticket_fields(self):
|
||||
""" Test event ticket fields synchronization """
|
||||
@@ -657,7 +678,7 @@ class TestEventTicketData(TestEventCommon):
|
||||
self.assertTrue(second_ticket.is_expired)
|
||||
|
||||
|
||||
class TestEventTypeData(TestEventCommon):
|
||||
class TestEventTypeData(TestEventInternalsCommon):
|
||||
|
||||
@users('user_eventmanager')
|
||||
def test_event_type_fields(self):
|
||||
|
||||
@@ -5,12 +5,12 @@ from datetime import datetime
|
||||
from dateutil.relativedelta import relativedelta
|
||||
from freezegun import freeze_time
|
||||
|
||||
from odoo.addons.event.tests.common import TestEventCommon
|
||||
from odoo.addons.event.tests.common import EventCase
|
||||
from odoo.addons.mail.tests.common import MockEmail
|
||||
from odoo.tools import formataddr, mute_logger
|
||||
|
||||
|
||||
class TestMailSchedule(TestEventCommon, MockEmail):
|
||||
class TestMailSchedule(EventCase, MockEmail):
|
||||
|
||||
@mute_logger('odoo.addons.base.models.ir_model', 'odoo.models')
|
||||
def test_event_mail_schedule(self):
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo.addons.event.tests.common import TestEventCommon
|
||||
from odoo.addons.event.tests.common import EventCase
|
||||
|
||||
|
||||
class TestEventBoothCommon(TestEventCommon):
|
||||
class TestEventBoothCommon(EventCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
@@ -18,13 +18,3 @@ class TestEventBoothCommon(TestEventCommon):
|
||||
'name': 'Premium',
|
||||
'description': '<p>Premium</p>',
|
||||
})
|
||||
|
||||
cls.event_type_complex.write({
|
||||
'event_type_booth_ids': [
|
||||
(5, 0),
|
||||
(0, 0,
|
||||
{'name': 'Standard 1', 'booth_category_id': cls.event_booth_category_1.id}),
|
||||
(0, 0,
|
||||
{'name': 'Premium 1', 'booth_category_id': cls.event_booth_category_2.id}),
|
||||
],
|
||||
})
|
||||
|
||||
@@ -2,10 +2,9 @@
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo.addons.event_booth.tests.common import TestEventBoothCommon
|
||||
from odoo.addons.event_sale.tests.common import TestEventSaleCommon
|
||||
|
||||
|
||||
class TestEventBoothSaleCommon(TestEventBoothCommon, TestEventSaleCommon):
|
||||
class TestEventBoothSaleCommon(TestEventBoothCommon):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
# -*- 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.crm.tests.common import TestCrmCommon
|
||||
from odoo.addons.event.tests.common import TestEventCommon
|
||||
from odoo.addons.event.tests.common import EventCase
|
||||
|
||||
|
||||
class TestEventCrmCommon(TestCrmCommon, TestEventCommon):
|
||||
class EventCrmCase(TestCrmCommon, EventCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(TestEventCrmCommon, cls).setUpClass()
|
||||
super(EventCrmCase, cls).setUpClass()
|
||||
|
||||
# avoid clash with existing rules
|
||||
cls.env['event.lead.rule'].search([]).write({'active': False})
|
||||
@@ -20,7 +23,6 @@ class TestEventCrmCommon(TestCrmCommon, TestEventCommon):
|
||||
'name': 'Rule Attendee',
|
||||
'lead_creation_basis': 'attendee',
|
||||
'lead_creation_trigger': 'create',
|
||||
'event_id': cls.event_0.id,
|
||||
'event_registration_filter': [['email', 'ilike', '@test.example.com']],
|
||||
'lead_type': 'lead',
|
||||
'lead_user_id': cls.user_sales_salesman.id,
|
||||
@@ -31,7 +33,6 @@ class TestEventCrmCommon(TestCrmCommon, TestEventCommon):
|
||||
'name': 'Rule Order',
|
||||
'lead_creation_basis': 'order',
|
||||
'lead_creation_trigger': 'create',
|
||||
'event_id': cls.event_0.id,
|
||||
'event_registration_filter': [['email', 'ilike', '@test.example.com']],
|
||||
'lead_type': 'opportunity',
|
||||
'lead_user_id': cls.user_sales_leads.id,
|
||||
@@ -96,7 +97,6 @@ class TestEventCrmCommon(TestCrmCommon, TestEventCommon):
|
||||
self.assertEqual(lead.partner_id, partner)
|
||||
self.assertEqual(lead.name, '%s - %s' % (event.name, expected_reg_name))
|
||||
self.assertNotIn('False', lead.name) # avoid a "Dear False" like construct ^^ (this assert is serious and intended)
|
||||
|
||||
self.assertEqual(lead.contact_name, expected_contact_name)
|
||||
self.assertEqual(lead.partner_name, expected_partner_name)
|
||||
self.assertEqual(lead.email_from, partner.email if partner else registrations._find_first_notnull('email'))
|
||||
@@ -120,3 +120,21 @@ class TestEventCrmCommon(TestCrmCommon, TestEventCommon):
|
||||
self.assertEqual(lead.user_id, rule.lead_user_id)
|
||||
self.assertEqual(lead.team_id, rule.lead_sales_team_id)
|
||||
self.assertEqual(lead.tag_ids, rule.lead_tag_ids)
|
||||
|
||||
|
||||
class TestEventCrmCommon(EventCrmCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(TestEventCrmCommon, cls).setUpClass()
|
||||
|
||||
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)),
|
||||
'date_tz': 'Europe/Brussels',
|
||||
})
|
||||
|
||||
cls.test_rule_attendee.event_id = cls.event_0.id
|
||||
cls.test_rule_order.event_id = cls.event_0.id
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo.addons.event.tests.common import TestEventCommon
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from odoo import fields
|
||||
from odoo.addons.event.tests.common import EventCase
|
||||
from odoo.addons.sales_team.tests.common import TestSalesCommon
|
||||
|
||||
|
||||
class TestEventSaleCommon(TestEventCommon, TestSalesCommon):
|
||||
class TestEventSaleCommon(EventCase, TestSalesCommon):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
@@ -18,3 +21,26 @@ class TestEventSaleCommon(TestEventCommon, TestSalesCommon):
|
||||
'standard_price': 30.0,
|
||||
'detailed_type': 'event',
|
||||
})
|
||||
|
||||
cls.event_type_tickets = cls.env['event.type'].create({
|
||||
'name': 'Update Type',
|
||||
'auto_confirm': True,
|
||||
'has_seats_limitation': True,
|
||||
'seats_max': 30,
|
||||
'default_timezone': 'Europe/Paris',
|
||||
'event_type_ticket_ids': [
|
||||
(0, 0, {'name': 'First Ticket',
|
||||
'product_id': cls.event_product.id,
|
||||
'seats_max': 5,
|
||||
})
|
||||
],
|
||||
'event_type_mail_ids': [],
|
||||
})
|
||||
|
||||
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)),
|
||||
'date_tz': 'Europe/Brussels',
|
||||
})
|
||||
|
||||
@@ -15,7 +15,8 @@ class TestEventData(TestEventSaleCommon):
|
||||
def test_event_configuration_from_type(self):
|
||||
""" In addition to event test, also test tickets configuration coming
|
||||
from event_sale capabilities. """
|
||||
event_type = self.event_type_complex.with_user(self.env.user)
|
||||
event_type = self.event_type_tickets.with_user(self.env.user)
|
||||
self.assertEqual(event_type.event_type_ticket_ids.description, self.event_product.description_sale)
|
||||
|
||||
event = self.env['event.event'].create({
|
||||
'name': 'Event Update Type',
|
||||
@@ -23,14 +24,6 @@ class TestEventData(TestEventSaleCommon):
|
||||
'date_begin': FieldsDatetime.to_string(datetime.today() + timedelta(days=1)),
|
||||
'date_end': FieldsDatetime.to_string(datetime.today() + timedelta(days=15)),
|
||||
})
|
||||
event_type.write({
|
||||
'event_type_ticket_ids': [(5, 0), (0, 0, {
|
||||
'name': 'First Ticket',
|
||||
'product_id': self.event_product.id,
|
||||
'seats_max': 5,
|
||||
})]
|
||||
})
|
||||
self.assertEqual(event_type.event_type_ticket_ids.description, self.event_product.description_sale)
|
||||
|
||||
# synchronize event
|
||||
event.write({'event_type_id': event_type.id})
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from dateutil.relativedelta import relativedelta
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from odoo.addons.event.tests.common import TestEventCommon
|
||||
from odoo import fields
|
||||
from odoo.addons.event.tests.common import EventCase
|
||||
from odoo.addons.phone_validation.tools import phone_validation
|
||||
from odoo.addons.sms.tests.common import SMSCase
|
||||
from odoo.tests import users
|
||||
|
||||
|
||||
class TestSMSSchedule(TestEventCommon, SMSCase):
|
||||
class TestSMSSchedule(EventCase, SMSCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
@@ -27,7 +29,11 @@ class TestSMSSchedule(TestEventCommon, SMSCase):
|
||||
'lang': '{{ object.partner_id.lang }}'
|
||||
})
|
||||
|
||||
cls.event_0.write({
|
||||
cls.test_event = cls.env['event.event'].create({
|
||||
'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)),
|
||||
'date_tz': 'Europe/Brussels',
|
||||
'event_mail_ids': [
|
||||
(5, 0),
|
||||
(0, 0, { # right at subscription
|
||||
@@ -41,51 +47,55 @@ class TestSMSSchedule(TestEventCommon, SMSCase):
|
||||
'interval_type': 'before_event',
|
||||
'notification_type': 'sms',
|
||||
'template_ref': 'sms.template,%i' % cls.sms_template_rem.id}),
|
||||
]
|
||||
],
|
||||
'name': 'TestEvent',
|
||||
})
|
||||
|
||||
@users('user_eventmanager')
|
||||
def test_sms_schedule(self):
|
||||
test_event = self.env['event.event'].browse(self.test_event.ids)
|
||||
|
||||
with self.mockSMSGateway():
|
||||
self._create_registrations(self.event_0, 3)
|
||||
self._create_registrations(test_event, 3)
|
||||
|
||||
# check subscription scheduler
|
||||
sub_scheduler = self.env['event.mail'].search([('event_id', '=', self.event_0.id), ('interval_type', '=', 'after_sub')])
|
||||
sub_scheduler = self.env['event.mail'].search([('event_id', '=', test_event.id), ('interval_type', '=', 'after_sub')])
|
||||
self.assertEqual(len(sub_scheduler), 1)
|
||||
self.assertEqual(sub_scheduler.scheduled_date, self.event_0.create_date, 'event: incorrect scheduled date for checking controller')
|
||||
self.assertEqual(sub_scheduler.scheduled_date, test_event.create_date, 'event: incorrect scheduled date for checking controller')
|
||||
|
||||
# verify that subscription scheduler was auto-executed after each registration
|
||||
self.assertEqual(len(sub_scheduler.mail_registration_ids), 3)
|
||||
self.assertTrue(all(m.mail_sent is True for m in sub_scheduler.mail_registration_ids))
|
||||
self.assertEqual(sub_scheduler.mapped('mail_registration_ids.registration_id'), self.event_0.registration_ids)
|
||||
self.assertEqual(sub_scheduler.mapped('mail_registration_ids.registration_id'), test_event.registration_ids)
|
||||
|
||||
sanitized_numbers = []
|
||||
for registration in self.event_0.registration_ids:
|
||||
for registration in test_event.registration_ids:
|
||||
reg_sanitized_number = phone_validation.phone_format(registration.phone, 'BE', '32', force_format='E164')
|
||||
sanitized_numbers.append(reg_sanitized_number)
|
||||
self.assertSMSOutgoing(
|
||||
self.env['res.partner'], reg_sanitized_number,
|
||||
content='%s registration confirmation.' % self.event_0.organizer_id.name)
|
||||
content='%s registration confirmation.' % test_event.organizer_id.name)
|
||||
self.assertTrue(sub_scheduler.mail_done)
|
||||
self.assertEqual(sub_scheduler.mail_count_done, 3)
|
||||
|
||||
# clear notification queue to avoid conflicts when checking next notifications
|
||||
self.env['mail.notification'].search([('sms_number', 'in', sanitized_numbers)]).unlink()
|
||||
self.env['sms.sms'].search([('number', 'in', sanitized_numbers)]).unlink()
|
||||
self.env['mail.notification'].sudo().search([('sms_number', 'in', sanitized_numbers)]).unlink()
|
||||
self.env['sms.sms'].sudo().search([('number', 'in', sanitized_numbers)]).unlink()
|
||||
|
||||
# check before event scheduler
|
||||
before_scheduler = self.env['event.mail'].search([('event_id', '=', self.event_0.id), ('interval_type', '=', 'before_event')])
|
||||
before_scheduler = self.env['event.mail'].search([('event_id', '=', test_event.id), ('interval_type', '=', 'before_event')])
|
||||
self.assertEqual(len(before_scheduler), 1, 'event: wrong scheduler creation')
|
||||
self.assertEqual(before_scheduler.scheduled_date, self.event_0.date_begin + relativedelta(days=-3))
|
||||
self.assertEqual(before_scheduler.scheduled_date, test_event.date_begin + timedelta(days=-3))
|
||||
|
||||
# execute event reminder scheduler explicitly
|
||||
with self.mockSMSGateway():
|
||||
before_scheduler.execute()
|
||||
|
||||
# verify that subscription scheduler was auto-executed after each registration
|
||||
for registration in self.event_0.registration_ids:
|
||||
for registration in test_event.registration_ids:
|
||||
reg_sanitized_number = phone_validation.phone_format(registration.phone, 'BE', '32', force_format='E164')
|
||||
self.assertSMSOutgoing(
|
||||
self.env['res.partner'], reg_sanitized_number,
|
||||
content='%s reminder' % self.event_0.organizer_id.name)
|
||||
content='%s reminder' % test_event.organizer_id.name)
|
||||
self.assertTrue(before_scheduler.mail_done)
|
||||
self.assertEqual(before_scheduler.mail_count_done, 3)
|
||||
|
||||
@@ -1,30 +1,46 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from datetime import datetime
|
||||
from dateutil.relativedelta import relativedelta
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from odoo.addons.event.tests.common import TestEventCommon
|
||||
from odoo import fields
|
||||
from odoo.addons.event.tests.common import EventCase
|
||||
from odoo.exceptions import AccessError
|
||||
from odoo.tests.common import users
|
||||
from odoo.tools import mute_logger
|
||||
|
||||
|
||||
class TestEventSecurity(TestEventCommon):
|
||||
class TestEventSecurity(EventCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(TestEventSecurity, cls).setUpClass()
|
||||
|
||||
cls.test_event = cls.env['event.event'].create({
|
||||
'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)),
|
||||
'date_tz': 'Europe/Brussels',
|
||||
'name': 'TestEvent',
|
||||
})
|
||||
cls.test_event_type = cls.env['event.type'].create({
|
||||
'auto_confirm': True,
|
||||
'name': 'Update Type',
|
||||
})
|
||||
|
||||
@users('user_employee')
|
||||
@mute_logger('odoo.models.unlink', 'odoo.addons.base.models.ir_model')
|
||||
def test_event_access_employee(self):
|
||||
# Event: read ok
|
||||
event = self.event_0.with_user(self.env.user)
|
||||
event = self.test_event.with_user(self.env.user)
|
||||
event.read(['name'])
|
||||
|
||||
# Event: read only
|
||||
with self.assertRaises(AccessError):
|
||||
self.env['event.event'].create({
|
||||
'name': 'TestEvent',
|
||||
'date_begin': datetime.now() + relativedelta(days=-1),
|
||||
'date_end': datetime.now() + relativedelta(days=1),
|
||||
'date_begin': datetime.now() + timedelta(days=-1),
|
||||
'date_end': datetime.now() + timedelta(days=1),
|
||||
'seats_limited': True,
|
||||
'seats_max': 10,
|
||||
})
|
||||
@@ -35,9 +51,9 @@ class TestEventSecurity(TestEventCommon):
|
||||
|
||||
# Event Type
|
||||
with self.assertRaises(AccessError):
|
||||
self.event_type_complex.with_user(self.env.user).read(['name'])
|
||||
self.test_event_type.with_user(self.env.user).read(['name'])
|
||||
with self.assertRaises(AccessError):
|
||||
self.event_type_complex.with_user(self.env.user).write({'name': 'Test Write'})
|
||||
self.test_event_type.with_user(self.env.user).write({'name': 'Test Write'})
|
||||
|
||||
# Event Stage
|
||||
with self.assertRaises(AccessError):
|
||||
@@ -53,7 +69,7 @@ class TestEventSecurity(TestEventCommon):
|
||||
@mute_logger('odoo.models.unlink', 'odoo.addons.base.models.ir_model')
|
||||
def test_event_access_event_registration(self):
|
||||
# Event: read ok
|
||||
event = self.event_0.with_user(self.env.user)
|
||||
event = self.test_event.with_user(self.env.user)
|
||||
event.read(['name', 'user_id', 'kanban_state_label'])
|
||||
|
||||
# Event: read only
|
||||
@@ -64,9 +80,9 @@ class TestEventSecurity(TestEventCommon):
|
||||
|
||||
# Event Registration
|
||||
registration = self.env['event.registration'].create({
|
||||
'event_id': self.event_0.id,
|
||||
'event_id': self.test_event.id,
|
||||
})
|
||||
self.assertEqual(registration.event_id.name, self.event_0.name, 'Registration users should be able to read')
|
||||
self.assertEqual(registration.event_id.name, self.test_event.name, 'Registration users should be able to read')
|
||||
registration.name = 'Test write'
|
||||
with self.assertRaises(AccessError):
|
||||
registration.unlink()
|
||||
@@ -75,13 +91,13 @@ class TestEventSecurity(TestEventCommon):
|
||||
@mute_logger('odoo.models.unlink', 'odoo.addons.base.models.ir_model')
|
||||
def test_event_access_event_user(self):
|
||||
# Event
|
||||
event = self.event_0.with_user(self.env.user)
|
||||
event = self.test_event.with_user(self.env.user)
|
||||
event.read(['name', 'user_id', 'kanban_state_label'])
|
||||
event.write({'name': 'New name'})
|
||||
self.env['event.event'].create({
|
||||
'name': 'Event',
|
||||
'date_begin': datetime.now() + relativedelta(days=-1),
|
||||
'date_end': datetime.now() + relativedelta(days=1),
|
||||
'date_begin': datetime.now() + timedelta(days=-1),
|
||||
'date_end': datetime.now() + timedelta(days=1),
|
||||
})
|
||||
|
||||
# Event: cannot unlink
|
||||
@@ -112,8 +128,8 @@ class TestEventSecurity(TestEventCommon):
|
||||
# Event
|
||||
event = self.env['event.event'].create({
|
||||
'name': 'ManagerEvent',
|
||||
'date_begin': datetime.now() + relativedelta(days=-1),
|
||||
'date_end': datetime.now() + relativedelta(days=1),
|
||||
'date_begin': datetime.now() + timedelta(days=-1),
|
||||
'date_end': datetime.now() + timedelta(days=1),
|
||||
})
|
||||
event.write({'name': 'New Event Name'})
|
||||
|
||||
@@ -180,13 +196,13 @@ class TestEventSecurity(TestEventCommon):
|
||||
event_company_1, event_company_2 = self.env['event.event'].create([
|
||||
{
|
||||
'name': 'Event Company 1',
|
||||
'date_begin': datetime.now() + relativedelta(days=-1),
|
||||
'date_end': datetime.now() + relativedelta(days=1),
|
||||
'date_begin': datetime.now() + timedelta(days=-1),
|
||||
'date_end': datetime.now() + timedelta(days=1),
|
||||
'company_id': company_1.id,
|
||||
}, {
|
||||
'name': 'Event Company 2',
|
||||
'date_begin': datetime.now() + relativedelta(days=-1),
|
||||
'date_end': datetime.now() + relativedelta(days=1),
|
||||
'date_begin': datetime.now() + timedelta(days=-1),
|
||||
'date_end': datetime.now() + timedelta(days=1),
|
||||
'company_id': company_2.id,
|
||||
}
|
||||
])
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
from datetime import datetime, timedelta, time
|
||||
from unittest.mock import patch
|
||||
|
||||
from odoo.addons.event.tests.common import TestEventCommon
|
||||
from odoo.addons.event.tests.common import EventCase
|
||||
from odoo.addons.mail.tests.common import mail_new_test_user
|
||||
from odoo.fields import Datetime as FieldsDatetime, Date as FieldsDate
|
||||
from odoo.tests.common import TransactionCase
|
||||
@@ -57,21 +57,30 @@ class EventDtPatcher(TransactionCase):
|
||||
cls.addClassCleanup(cls.wevent_main_date.stop)
|
||||
|
||||
|
||||
class TestWebsiteEventCommon(TestEventCommon):
|
||||
class OnlineEventCase(EventCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(TestWebsiteEventCommon, cls).setUpClass()
|
||||
super(OnlineEventCase, cls).setUpClass()
|
||||
|
||||
cls.company_main = cls.env.user.company_id
|
||||
cls.user_event_web_manager = mail_new_test_user(
|
||||
cls.env, login='user_event_web_manager',
|
||||
name='Martin Sales Manager', email='crm_manager@test.example.com',
|
||||
company_id=cls.company_main.id,
|
||||
notification_type='inbox',
|
||||
cls.env,
|
||||
company_id=cls.company_admin.id,
|
||||
email='crm_manager@test.example.com',
|
||||
groups='event.group_event_manager,website.group_website_designer',
|
||||
login='user_event_web_manager',
|
||||
name='Martin Sales Manager',
|
||||
notification_type='inbox',
|
||||
)
|
||||
|
||||
cls.event_customer.write({
|
||||
'website_description': '<p>I am your best customer, %s</p>' % cls.event_customer.name,
|
||||
})
|
||||
cls.event_customer2.write({
|
||||
'website_description': '<p>I am your best customer, %s</p>' % cls.event_customer2.name,
|
||||
})
|
||||
|
||||
def _get_menus(self):
|
||||
return set(['Introduction', 'Location', 'Register', 'Community'])
|
||||
|
||||
@@ -97,21 +106,17 @@ class TestWebsiteEventCommon(TestEventCommon):
|
||||
self.assertFalse(bool(view))
|
||||
|
||||
|
||||
class TestEventOnlineCommon(TestEventCommon, EventDtPatcher):
|
||||
class TestEventOnlineCommon(OnlineEventCase, EventDtPatcher):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(TestEventOnlineCommon, cls).setUpClass()
|
||||
|
||||
# event if 8-18 in Europe/Brussels (DST) (first day: begins at 9, last day: ends at 15)
|
||||
cls.event_0.write({
|
||||
cls.event_0 = cls.env['event.event'].create({
|
||||
'name': 'TestEvent',
|
||||
'auto_confirm': True,
|
||||
'date_begin': datetime.combine(cls.reference_now, time(7, 0)) - timedelta(days=1),
|
||||
'date_end': datetime.combine(cls.reference_now, time(13, 0)) + timedelta(days=1),
|
||||
})
|
||||
|
||||
cls.event_customer.write({
|
||||
'website_description': '<p>I am your best customer, %s</p>' % cls.event_customer.name,
|
||||
})
|
||||
cls.event_customer2.write({
|
||||
'website_description': '<p>I am your best customer, %s</p>' % cls.event_customer2.name,
|
||||
'date_tz': 'Europe/Brussels',
|
||||
})
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from odoo import fields
|
||||
from odoo.addons.website_event.tests.common import TestWebsiteEventCommon
|
||||
from odoo.addons.website_event.tests.common import OnlineEventCase
|
||||
from odoo.tests.common import users
|
||||
|
||||
|
||||
class TestEventMenus(TestWebsiteEventCommon):
|
||||
class TestEventMenus(OnlineEventCase):
|
||||
|
||||
@users('user_eventmanager')
|
||||
def test_menu_management(self):
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from odoo import fields
|
||||
from odoo.addons.website_event.tests.common import TestWebsiteEventCommon
|
||||
from odoo.addons.website_event.tests.common import TestEventOnlineCommon
|
||||
|
||||
|
||||
class TestEventVisitor(TestWebsiteEventCommon):
|
||||
class TestEventVisitor(TestEventOnlineCommon):
|
||||
|
||||
def test_visitor_events(self):
|
||||
event_1 = self.env['event.event'].create({
|
||||
|
||||
@@ -6,7 +6,7 @@ from datetime import datetime, timedelta
|
||||
from odoo.addons.base.tests.common import HttpCaseWithUserDemo
|
||||
from odoo.addons.mail.tests.common import mail_new_test_user
|
||||
from odoo.addons.website.tests.test_base_url import TestUrlCommon
|
||||
from odoo.addons.website_event.tests.common import TestWebsiteEventCommon
|
||||
from odoo.addons.website_event.tests.common import OnlineEventCase
|
||||
from odoo.tests import tagged
|
||||
from odoo.tools import mute_logger
|
||||
|
||||
@@ -27,7 +27,7 @@ class TestURLs(TestUrlCommon):
|
||||
|
||||
|
||||
@tagged('post_install', '-at_install')
|
||||
class TestWebsiteAccess(HttpCaseWithUserDemo, TestWebsiteEventCommon):
|
||||
class TestWebsiteAccess(HttpCaseWithUserDemo, OnlineEventCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestWebsiteAccess, self).setUp()
|
||||
|
||||
@@ -26,4 +26,6 @@ class TestEventExhibitorCommon(TestEventOnlineCommon):
|
||||
'partner_id': cls.sponsor_0_partner.id,
|
||||
'event_id': cls.event_0.id,
|
||||
'sponsor_type_id': cls.sponsor_type_0.id,
|
||||
'hour_from': 8.0,
|
||||
'hour_to': 18.0,
|
||||
})
|
||||
|
||||
@@ -15,11 +15,6 @@ class TestSponsorData(TestEventExhibitorCommon):
|
||||
def setUpClass(cls):
|
||||
super(TestSponsorData, cls).setUpClass()
|
||||
|
||||
cls.sponsor_0.write({
|
||||
'hour_from': 8.0,
|
||||
'hour_to': 18.0,
|
||||
})
|
||||
|
||||
cls.wevent_exhib_dt = patch(
|
||||
'odoo.addons.website_event_exhibitor.models.event_sponsor.fields.Datetime',
|
||||
wraps=FieldsDatetime
|
||||
|
||||
@@ -1,11 +1,26 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo.addons.event.tests.common import TestEventCommon
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from odoo import fields
|
||||
from odoo.addons.event.tests.common import EventCase
|
||||
from odoo.tests import Form
|
||||
|
||||
|
||||
class TestWebsiteEventMeet(TestEventCommon):
|
||||
class TestWebsiteEventMeet(EventCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(TestWebsiteEventMeet, cls).setUpClass()
|
||||
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)),
|
||||
'date_tz': 'Europe/Brussels',
|
||||
})
|
||||
|
||||
def test_meeting_room_create(self):
|
||||
"""Test that the field of the mixin are automatically filled."""
|
||||
new_meeting_room_form = Form(self.env["event.meeting.room"])
|
||||
|
||||
@@ -1,19 +1,29 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo.addons.event.tests.common import TestEventCommon
|
||||
from odoo.addons.event.tests.common import EventCase
|
||||
|
||||
|
||||
class TestEventQuestionCommon(TestEventCommon):
|
||||
class TestEventQuestionCommon(EventCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(TestEventQuestionCommon, cls).setUpClass()
|
||||
|
||||
cls.event_type_questions = cls.env['event.type'].create({
|
||||
'name': 'Update Type',
|
||||
'auto_confirm': True,
|
||||
'has_seats_limitation': True,
|
||||
'seats_max': 30,
|
||||
'default_timezone': 'Europe/Paris',
|
||||
'event_type_ticket_ids': [],
|
||||
'event_type_mail_ids': [],
|
||||
})
|
||||
|
||||
cls.event_question_1 = cls.env['event.question'].create({
|
||||
'title': 'Question1',
|
||||
'question_type': 'simple_choice',
|
||||
'event_type_id': cls.event_type_complex.id,
|
||||
'event_type_id': cls.event_type_questions.id,
|
||||
'once_per_order': False,
|
||||
'answer_ids': [
|
||||
(0, 0, {'name': 'Q1-Answer1'}),
|
||||
@@ -23,7 +33,7 @@ class TestEventQuestionCommon(TestEventCommon):
|
||||
cls.event_question_2 = cls.env['event.question'].create({
|
||||
'title': 'Question2',
|
||||
'question_type': 'simple_choice',
|
||||
'event_type_id': cls.event_type_complex.id,
|
||||
'event_type_id': cls.event_type_questions.id,
|
||||
'once_per_order': True,
|
||||
'answer_ids': [
|
||||
(0, 0, {'name': 'Q2-Answer1'}),
|
||||
@@ -33,6 +43,6 @@ class TestEventQuestionCommon(TestEventCommon):
|
||||
cls.event_question_3 = cls.env['event.question'].create({
|
||||
'title': 'Question3',
|
||||
'question_type': 'text_box',
|
||||
'event_type_id': cls.event_type_complex.id,
|
||||
'event_type_id': cls.event_type_questions.id,
|
||||
'once_per_order': True,
|
||||
})
|
||||
|
||||
@@ -14,7 +14,7 @@ class TestEventData(TestEventQuestionCommon):
|
||||
|
||||
@users('user_eventmanager')
|
||||
def test_event_type_configuration_from_type(self):
|
||||
event_type = self.event_type_complex.with_user(self.env.user)
|
||||
event_type = self.event_type_questions.with_user(self.env.user)
|
||||
|
||||
event = self.env['event.event'].create({
|
||||
'name': 'Event Update Type',
|
||||
@@ -40,7 +40,7 @@ class TestEventData(TestEventQuestionCommon):
|
||||
def test_process_attendees_form(self):
|
||||
event = self.env['event.event'].create({
|
||||
'name': 'Event Update Type',
|
||||
'event_type_id': self.event_type_complex.with_user(self.env.user).id,
|
||||
'event_type_id': self.event_type_questions.with_user(self.env.user).id,
|
||||
'date_begin': FieldsDatetime.to_string(datetime.today() + timedelta(days=1)),
|
||||
'date_end': FieldsDatetime.to_string(datetime.today() + timedelta(days=15)),
|
||||
})
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from odoo import fields
|
||||
from odoo.addons.website_event.tests.common import TestWebsiteEventCommon
|
||||
from odoo.addons.website_event.tests.common import OnlineEventCase
|
||||
from odoo.tests.common import users
|
||||
|
||||
|
||||
class TestEventWebsiteTrack(TestWebsiteEventCommon):
|
||||
class TestEventWebsiteTrack(OnlineEventCase):
|
||||
|
||||
def _get_menus(self):
|
||||
return super(TestEventWebsiteTrack, self)._get_menus() | set(['Talks', 'Agenda', 'Talk Proposals'])
|
||||
|
||||
Reference in New Issue
Block a user