diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/survey/tests/test_survey_randomize.py | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/survey/tests/test_survey_randomize.py')
| -rw-r--r-- | addons/survey/tests/test_survey_randomize.py | 59 |
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 |
