def test_mutually_exclusive_mandatory_checkbox(answer_permutations, is_mandatory): validator = MutuallyExclusiveCheck(question_title="") validator( answer_values=iter(answer_permutations), is_mandatory=is_mandatory, is_only_checkboxes=True, )
def test_mutually_exclusive_mandatory_checkbox_raises_ValidationError( answer_permutations, is_mandatory, is_only_checkboxes, error_type): validator = MutuallyExclusiveCheck(question_title="") with pytest.raises(ValidationError) as exc: validator( answer_values=iter(answer_permutations), is_mandatory=is_mandatory, is_only_checkboxes=is_only_checkboxes, ) assert format_message_with_title(error_messages[error_type], "") == str(exc.value)
def validate_mutually_exclusive_question(self, question): is_mandatory = question.get("mandatory") messages = (question["validation"].get("messages") if "validation" in question else None) answers = (getattr(self, answer["id"]).data for answer in question["answers"]) validator = MutuallyExclusiveCheck(messages=messages) try: validator(answers, is_mandatory) except validators.ValidationError as e: self.question_errors[question["id"]] = str(e) return False return True
def validate_mutually_exclusive_question(self, question: QuestionSchema) -> bool: is_mandatory: bool = question["mandatory"] messages = (question["validation"].get("messages") if "validation" in question else None) answers = (getattr(self, answer["id"]).data for answer in question["answers"]) is_only_checkboxes = all(answer["type"] == "Checkbox" for answer in question["answers"]) validator = MutuallyExclusiveCheck( messages=messages, question_title=self.question_title, ) try: validator(answers, is_mandatory, is_only_checkboxes) except validators.ValidationError as e: self.question_errors[question["id"]] = str(e) return False return True
def setUp(self): self.validator = MutuallyExclusiveCheck()
def setUp(self): self.question_title = "" self.validator = MutuallyExclusiveCheck( question_title=self.question_title)