summaryrefslogtreecommitdiff
path: root/addons/website_event_questions/tests/test_event_ui.py
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/website_event_questions/tests/test_event_ui.py
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/website_event_questions/tests/test_event_ui.py')
-rw-r--r--addons/website_event_questions/tests/test_event_ui.py90
1 files changed, 90 insertions, 0 deletions
diff --git a/addons/website_event_questions/tests/test_event_ui.py b/addons/website_event_questions/tests/test_event_ui.py
new file mode 100644
index 00000000..fdebd0c4
--- /dev/null
+++ b/addons/website_event_questions/tests/test_event_ui.py
@@ -0,0 +1,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')