summaryrefslogtreecommitdiff
path: root/addons/survey/tests/test_survey_randomize.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/survey/tests/test_survey_randomize.py
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/survey/tests/test_survey_randomize.py')
-rw-r--r--addons/survey/tests/test_survey_randomize.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/addons/survey/tests/test_survey_randomize.py b/addons/survey/tests/test_survey_randomize.py
new file mode 100644
index 00000000..fa926b18
--- /dev/null
+++ b/addons/survey/tests/test_survey_randomize.py
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from odoo.tests.common import TransactionCase
+
+
+class TestSurveyRandomize(TransactionCase):
+ def test_01_generate_randomized_questions(self):
+ """ Use random generate for a survey and verify that questions within the page are selected accordingly """
+ Question = self.env['survey.question'].sudo()
+ question_and_pages = self.env['survey.question']
+ page_1 = Question.create({
+ 'title': 'Page 1',
+ 'is_page': True,
+ 'sequence': 1,
+ 'random_questions_count': 3
+ })
+ question_and_pages |= page_1
+ question_and_pages = self._add_questions(question_and_pages, page_1, 5)
+
+ page_2 = Question.create({
+ 'title': 'Page 2',
+ 'is_page': True,
+ 'sequence': 100,
+ 'random_questions_count': 5
+ })
+ question_and_pages |= page_2
+ question_and_pages = self._add_questions(question_and_pages, page_2, 10)
+
+ page_3 = Question.create({
+ 'title': 'Page 2',
+ 'is_page': True,
+ 'sequence': 1000,
+ 'random_questions_count': 4
+ })
+ question_and_pages |= page_3
+ question_and_pages = self._add_questions(question_and_pages, page_3, 2)
+
+ self.survey1 = self.env['survey.survey'].sudo().create({
+ 'title': "S0",
+ 'question_and_page_ids': [(6, 0, question_and_pages.ids)],
+ 'questions_selection': 'random'
+ })
+
+ generated_questions = self.survey1._prepare_user_input_predefined_questions()
+
+ self.assertEqual(len(generated_questions.ids), 10, msg="Expected 10 unique questions")
+ self.assertEqual(len(generated_questions.filtered(lambda question: question.page_id == page_1)), 3, msg="Expected 3 questions in page 1")
+ self.assertEqual(len(generated_questions.filtered(lambda question: question.page_id == page_2)), 5, msg="Expected 5 questions in page 2")
+ self.assertEqual(len(generated_questions.filtered(lambda question: question.page_id == page_3)), 2, msg="Expected 2 questions in page 3")
+
+ def _add_questions(self, question_and_pages, page, count):
+ for i in range(count):
+ question_and_pages |= self.env['survey.question'].sudo().create({
+ 'title': page.title + ' Q' + str(i + 1),
+ 'sequence': page.sequence + (i + 1)
+ })
+
+ return question_and_pages