def test_get_extra_properties_one_path(self): q_graph = create_diamond_plus() session = SessionFactory.create(questionnaire__graph=q_graph) service = SessionService(session) # get references to questions service.question_graph_service.refresh_from_db() q_by_analysis_key = { q.analysis_key: q for q in service.question_graph_service._questions } # Answer questions Answer.objects.create(session=session, question=q_by_analysis_key['q1'], payload='q1') Answer.objects.create(session=session, question=q_by_analysis_key['q2'], payload='q2') Answer.objects.create(session=session, question=q_by_analysis_key['q4'], payload='q4') Answer.objects.create(session=session, question=q_by_analysis_key['q5'], payload='q5') service.refresh_from_db() extra_properties = service.get_extra_properties('URL') self.assertEqual(len(extra_properties), 4) self.assertEqual(extra_properties[0]['category_url'], 'URL') extra_properties_no_url = service.get_extra_properties() self.assertEqual(len(extra_properties_no_url), 4) self.assertNotIn('category_url', extra_properties_no_url[0])
def test_get_extra_properties_no_answers(self): q_graph = create_diamond_plus() session = SessionFactory.create(questionnaire__graph=q_graph) service = SessionService(session) extra_properties = service.get_extra_properties( 'URL') # this does a refresh_from_db self.assertEqual(extra_properties, []) extra_properties_no_url = service.get_extra_properties() self.assertEqual(extra_properties_no_url, [])
def test_get_extra_properties_one_answer(self): q_graph = create_diamond_plus() session = SessionFactory.create(questionnaire__graph=q_graph) service = SessionService(session) # Answer questions Answer.objects.create(session=session, question=q_graph.first_question, payload='q1') service.refresh_from_db() extra_properties = service.get_extra_properties('URL') self.assertEqual(len(extra_properties), 1) self.assertEqual(extra_properties[0]['category_url'], 'URL') self.assertEqual(extra_properties[0]['label'], q_graph.first_question.short_label) extra_properties_no_url = service.get_extra_properties() self.assertEqual(len(extra_properties_no_url), 1) self.assertNotIn('category_url', extra_properties_no_url[0])