def _build_answers(self, answer_store, question_schema): if self.summary: return [ { "id": f"{self.id}-concatenated-answer", "value": self._concatenate_answers( answer_store, self.summary["concatenation_type"] ), } ] summary_answers = [] for answer_schema in self.answer_schemas: answer_value = self._get_answer(answer_store, answer_schema["id"]) answer = self._build_answer( answer_store, question_schema, answer_schema, answer_value ) summary_answer = Answer(answer_schema, answer).serialize() summary_answers.append(summary_answer) if question_schema["type"] == "MutuallyExclusive": exclusive_option = summary_answers[-1]["value"] if exclusive_option: return summary_answers[-1:] return summary_answers[:-1] return summary_answers
def test_date_answer_type(self): # Given answer_schema = {"id": "answer-id", "label": "", "type": "date"} user_answer = None # When answer = Answer(answer_schema, user_answer) # Then self.assertEqual(answer.type, "date")
def test_create_answer(self): # Given answer_schema = { "id": "answer-id", "label": "Answer Label", "type": "date" } user_answer = "An answer" # When answer = Answer(answer_schema, user_answer) # Then self.assertEqual(answer.id, "answer-id") self.assertEqual(answer.label, "Answer Label") self.assertEqual(answer.value, user_answer)
def _build_answers(self, *, answer_store, question_schema, block_id, list_name, return_to): if self.summary: answer_id = f"{self.id}-concatenated-answer" link = url_for( "questionnaire.block", list_name=list_name, block_id=block_id, list_item_id=self.list_item_id, return_to=return_to, return_to_answer_id=answer_id, _anchor=answer_id, ) return [{ "id": answer_id, "value": self._concatenate_answers(answer_store, self.summary["concatenation_type"]), "link": link, }] summary_answers = [] for answer_schema in self.answer_schemas: answer_value = self.get_answer(answer_store, answer_schema["id"]) answer = self._build_answer(answer_store, question_schema, answer_schema, answer_value) summary_answer = Answer( answer_schema=answer_schema, answer_value=answer, block_id=block_id, list_name=list_name, list_item_id=self.list_item_id, return_to=return_to, ).serialize() summary_answers.append(summary_answer) if question_schema["type"] == "MutuallyExclusive": exclusive_option = summary_answers[-1]["value"] if exclusive_option: return summary_answers[-1:] return summary_answers[:-1] return summary_answers
def test_date_answer_type(self): # Given answer_schema = {"id": "answer-id", "label": "", "type": "date"} user_answer = None # When answer = Answer( answer_schema=answer_schema, answer_value=user_answer, block_id="house-type", list_name="answer-list", list_item_id="answer-item-id", return_to="section-summary", ) # Then self.assertEqual(answer.type, "date")
def _build_answers(self, answer_store, question_schema): summary_answers = [] for answer_schema in self.answer_schemas: answer_value = self._get_answer(answer_store, answer_schema["id"]) answer = self._build_answer(answer_store, question_schema, answer_schema, answer_value) summary_answer = Answer(answer_schema, answer).serialize() summary_answers.append(summary_answer) if question_schema["type"] == "MutuallyExclusive": exclusive_option = summary_answers[-1]["value"] if exclusive_option: return summary_answers[-1:] return summary_answers[:-1] return summary_answers
def test_create_answer(self): answer_schema = {"id": "answer-id", "label": "Answer Label", "type": "date"} user_answer = "An answer" answer = Answer( answer_schema=answer_schema, answer_value=user_answer, block_id="house-type", list_name="answer-list", list_item_id="answer-item-id", return_to="section-summary", ) self.assertEqual(answer.id, "answer-id") self.assertEqual(answer.label, "Answer Label") self.assertEqual(answer.value, "An answer") self.assertEqual(answer.type, "date") self.assertEqual( answer.link, "http://test.localdomain/questionnaire/answer-list/answer-item-id/house-type/?return_to=section-summary&return_to_answer_id=answer-id#answer-id", )