def test_date_answer_non_mandatory(self): date_widget = DateWidget('1234') response = date_widget.get_user_input({ '1234-day': '', '1234-month': '', '1234-year': '' }) self.assertIsNone(response)
def test_date_answer_mandatory(self): date_widget = DateWidget('1234') response = date_widget.get_user_input({ '1234-day': '1', '1234-month': '2', '1234-year': '2017' }) self.assertRegex(response, "1/2/2017")
class DateAnswer(Answer): def __init__(self, answer_id=None): super().__init__(answer_id) self.type_checkers.append(DateTypeCheck()) self.widget = DateWidget(self.id) def get_typed_value(self, post_data): user_input = self.get_user_input(post_data) for checker in self.type_checkers: result = checker.validate(user_input) if not result.is_valid: raise TypeCheckingException(result.errors[0]) return self._cast_user_input(user_input) def get_user_input(self, post_vars): return self.widget.get_user_input(post_vars)