1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from dateutil.relativedelta import relativedelta
from odoo import fields, tests
@tests.tagged('post_install', '-at_install')
class TestUi(tests.HttpCase):
def test_01_tickets_questions(self):
""" Will execute the tour that fills up two tickets with a few questions answers
and then assert that the answers are correctly saved for each attendee. """
self.design_fair_event = self.env['event.event'].create({
'name': 'Design Fair New York',
'date_begin': fields.Datetime.now() - relativedelta(days=15),
'date_end': fields.Datetime.now() + relativedelta(days=15),
'event_ticket_ids': [(0, 0, {
'name': 'Free',
'start_sale_date': fields.Datetime.now() - relativedelta(days=15)
}), (0, 0, {
'name': 'Other',
'start_sale_date': fields.Datetime.now() - relativedelta(days=15)
})],
'website_published': True,
'question_ids': [(0, 0, {
'title': 'Meal Type',
'question_type': 'simple_choice',
'answer_ids': [
(0, 0, {'name': 'Mixed'}),
(0, 0, {'name': 'Vegetarian'}),
(0, 0, {'name': 'Pastafarian'})
]
}), (0, 0, {
'title': 'Allergies',
'question_type': 'text_box'
}), (0, 0, {
'title': 'How did you learn about this event?',
'question_type': 'simple_choice',
'once_per_order': True,
'answer_ids': [
(0, 0, {'name': 'Our website'}),
(0, 0, {'name': 'Commercials'}),
(0, 0, {'name': 'A friend'})
]
})]
})
self.start_tour("/", 'test_tickets_questions', login="portal")
registrations = self.env['event.registration'].search([
('email', 'in', ['attendee-a@gmail.com', 'attendee-b@gmail.com'])
])
self.assertEqual(len(registrations), 2)
first_registration = registrations.filtered(lambda reg: reg.email == 'attendee-a@gmail.com')
second_registration = registrations.filtered(lambda reg: reg.email == 'attendee-b@gmail.com')
self.assertEqual(first_registration.name, 'Attendee A')
self.assertEqual(first_registration.phone, '+32499123456')
self.assertEqual(second_registration.name, 'Attendee B')
event_questions = registrations.mapped('event_id.question_ids')
self.assertEqual(len(event_questions), 3)
first_registration_answers = first_registration.registration_answer_ids
self.assertEqual(len(first_registration_answers), 3)
self.assertEqual(first_registration_answers.filtered(
lambda answer: answer.question_id.title == 'Meal Type'
).value_answer_id.name, 'Vegetarian')
self.assertEqual(first_registration_answers.filtered(
lambda answer: answer.question_id.title == 'Allergies'
).value_text_box, 'Fish and Nuts')
self.assertEqual(first_registration_answers.filtered(
lambda answer: answer.question_id.title == 'How did you learn about this event?'
).value_answer_id.name, 'A friend')
second_registration_answers = second_registration.registration_answer_ids
self.assertEqual(len(second_registration_answers), 2)
self.assertEqual(second_registration_answers.filtered(
lambda answer: answer.question_id.title == 'Meal Type'
).value_answer_id.name, 'Pastafarian')
self.assertEqual(first_registration_answers.filtered(
lambda answer: answer.question_id.title == 'How did you learn about this event?'
).value_answer_id.name, 'A friend')
|