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.py | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/survey/tests/test_survey.py')
| -rw-r--r-- | addons/survey/tests/test_survey.py | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/addons/survey/tests/test_survey.py b/addons/survey/tests/test_survey.py new file mode 100644 index 00000000..f1c2dfc6 --- /dev/null +++ b/addons/survey/tests/test_survey.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import _ +from odoo.addons.survey.tests import common +from odoo.tests.common import users + + +class TestSurveyInternals(common.TestSurveyCommon): + + @users('survey_manager') + def test_answer_validation_mandatory(self): + """ For each type of question check that mandatory questions correctly check for complete answers """ + for (question_type, text) in self.env['survey.question']._fields['question_type'].selection: + kwargs = {} + if question_type == 'multiple_choice': + kwargs['labels'] = [{'value': 'MChoice0'}, {'value': 'MChoice1'}] + elif question_type == 'simple_choice': + kwargs['labels'] = [] + elif question_type == 'matrix': + kwargs['labels'] = [{'value': 'Column0'}, {'value': 'Column1'}] + kwargs['labels_2'] = [{'value': 'Row0'}, {'value': 'Row1'}] + question = self._add_question(self.page_0, 'Q0', question_type, **kwargs) + + self.assertDictEqual( + question.validate_question(''), + {question.id: 'TestError'} + ) + + @users('survey_manager') + def test_answer_validation_date(self): + question = self._add_question( + self.page_0, 'Q0', 'date', validation_required=True, + validation_min_date='2015-03-20', validation_max_date='2015-03-25', validation_error_msg='ValidationError') + + self.assertEqual( + question.validate_question('Is Alfred an answer ?'), + {question.id: _('This is not a date')} + ) + + self.assertEqual( + question.validate_question('2015-03-19'), + {question.id: 'ValidationError'} + ) + + self.assertEqual( + question.validate_question('2015-03-26'), + {question.id: 'ValidationError'} + ) + + self.assertEqual( + question.validate_question('2015-03-25'), + {} + ) + + @users('survey_manager') + def test_answer_validation_numerical(self): + question = self._add_question( + self.page_0, 'Q0', 'numerical_box', validation_required=True, + validation_min_float_value=2.2, validation_max_float_value=3.3, validation_error_msg='ValidationError') + + self.assertEqual( + question.validate_question('Is Alfred an answer ?'), + {question.id: _('This is not a number')} + ) + + self.assertEqual( + question.validate_question('2.0'), + {question.id: 'ValidationError'} + ) + + self.assertEqual( + question.validate_question('4.0'), + {question.id: 'ValidationError'} + ) + + self.assertEqual( + question.validate_question('2.9'), + {} + ) + + @users('survey_manager') + def test_answer_validation_char_box_email(self): + question = self._add_question(self.page_0, 'Q0', 'char_box', validation_email=True) + + self.assertEqual( + question.validate_question('not an email'), + {question.id: _('This answer must be an email address')} + ) + + self.assertEqual( + question.validate_question('email@example.com'), + {} + ) + + @users('survey_manager') + def test_answer_validation_char_box_length(self): + question = self._add_question( + self.page_0, 'Q0', 'char_box', validation_required=True, + validation_length_min=2, validation_length_max=8, validation_error_msg='ValidationError') + + self.assertEqual( + question.validate_question('l'), + {question.id: 'ValidationError'} + ) + + self.assertEqual( + question.validate_question('waytoomuchlonganswer'), + {question.id: 'ValidationError'} + ) + + self.assertEqual( + question.validate_question('valid'), + {} + ) |
