Odoo18-Base/addons/pos_event/tests/test_frontend.py
2025-01-06 10:57:38 +07:00

81 lines
3.0 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
import datetime
from odoo.tests import tagged
from odoo.addons.point_of_sale.tests.test_frontend import TestPointOfSaleHttpCommon
@tagged('post_install', '-at_install')
class TestUi(TestPointOfSaleHttpCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.event_category = cls.env['pos.category'].create({
'name': 'Events',
})
cls.product_event = cls.env['product.product'].create({
'name': 'Event Ticket',
'type': 'service',
'list_price': 100,
'taxes_id': False,
'available_in_pos': True,
'service_tracking': 'event',
'pos_categ_ids': [(4, cls.event_category.id)],
})
cls.test_event = cls.env['event.event'].create({
'name': 'My Awesome Event',
'user_id': cls.pos_admin.id,
'date_begin': datetime.datetime.now() + datetime.timedelta(days=1),
'date_end': datetime.datetime.now() + datetime.timedelta(days=2),
'seats_limited': True,
'seats_max': 2,
'event_ticket_ids': [(0, 0, {
'name': 'Ticket Basic',
'product_id': cls.product_event.id,
'seats_max': 1,
'price': 100,
}), (0, 0, {
'name': 'Ticket VIP',
'seats_max': 1,
'product_id': cls.product_event.id,
'price': 200,
})],
'question_ids': [
(0, 0, {
'title': 'Question1',
'question_type': 'simple_choice',
'once_per_order': False,
'answer_ids': [
(0, 0, {'name': 'Q1-Answer1'}),
(0, 0, {'name': 'Q1-Answer2'})
],
}),
(0, 0, {
'title': 'Question2',
'question_type': 'simple_choice',
'once_per_order': True,
'answer_ids': [
(0, 0, {'name': 'Q2-Answer1'}),
(0, 0, {'name': 'Q2-Answer2'})
],
})
]
})
def test_selling_event_in_pos(self):
self.pos_user.write({
'groups_id': [
(4, self.env.ref('event.group_event_user').id),
]
})
self.main_pos_config.with_user(self.pos_user).open_ui()
self.start_tour("/pos/ui?config_id=%d" % self.main_pos_config.id, 'SellingEventInPos', login="pos_user")
order = self.env['pos.order'].search([], order='id desc', limit=1)
event_registration = order.lines[0].event_registration_ids
event_answer_name = event_registration.registration_answer_ids.value_answer_id.mapped('name')
self.assertEqual(len(event_registration.registration_answer_ids), 2)
self.assertEqual(event_answer_name, ['Q1-Answer1', 'Q2-Answer1'])