summaryrefslogtreecommitdiff
path: root/addons/survey/tests/test_survey.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.py
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/survey/tests/test_survey.py')
-rw-r--r--addons/survey/tests/test_survey.py115
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'),
+ {}
+ )