def test_should_show_data_only_for_investigators_who_completed_a_selected_batch(self):
        batch = Batch.objects.create(name="Batch 2", survey=self.survey)
        member_group = HouseholdMemberGroup.objects.create(name='group1', order=1)
        question_1 = Question.objects.create(text="some question", answer_type=Question.NUMBER, order=1,
                                             group=member_group)
        question_2 = Question.objects.create(text="some question", answer_type=Question.NUMBER, order=1,
                                             group=member_group)
        self.batch.questions.add(question_1)
        batch.questions.add(question_2)
        batch.open_for_location(self.abim)

        BatchQuestionOrder.objects.create(question=question_1, batch=self.batch, order=1)
        BatchQuestionOrder.objects.create(question=question_2, batch=batch, order=1)

        member_1 = HouseholdMember.objects.create(household=self.household_1, date_of_birth=datetime(2000, 02, 02))
        member_2 = HouseholdMember.objects.create(household=self.household_1, date_of_birth=datetime(2000, 02, 02))

        self.investigator_1.member_answered(question_1, member_1, 1, self.batch)

        data = [self.investigator_1.name, self.investigator_1.mobile_number]
        data.extend([loc.name for loc in self.investigator_1.location_hierarchy().values()])
        investigator_completion = Interviewer.generate_completion_report(self.survey, self.batch)
        self.assertNotIn(data, investigator_completion)

        self.investigator_1.member_answered(question_1, member_2, 1, self.batch)
        investigator_completion = Interviewer.generate_completion_report(self.survey, self.batch)
        self.assertIn(data, investigator_completion)
    def test_should_return_headers_when_generate_report_called(self):
        Interviewer.objects.all().delete()
        data = ['Investigator', 'Phone Number']
        data.extend(LocationType.objects.all().values_list('name', flat=True))

        response = Interviewer.generate_completion_report(self.survey)
        self.assertIn(data, response)
    def test_should_show_data_only_for_investigators_who_completed_the_survey(self):
        member_group = HouseholdMemberGroup.objects.create(name='group1', order=1)
        question = Question.objects.create(text="some question", answer_type=Question.NUMBER, order=1,
                                           group=member_group)
        self.batch.questions.add(question)
        BatchQuestionOrder.objects.create(question=question, batch=self.batch, order=1)
        member_1 = HouseholdMember.objects.create(household=self.household_1, date_of_birth=datetime(2000, 02, 02))
        member_2 = HouseholdMember.objects.create(household=self.household_1, date_of_birth=datetime(2000, 02, 02))
        member_3 = HouseholdMember.objects.create(household=self.household_2, date_of_birth=datetime(2000, 02, 02))
        self.investigator_1.member_answered(question, member_1, 1, self.batch)
        self.investigator_1.member_answered(question, member_2, 1, self.batch)

        data = [self.investigator_1.name, self.investigator_1.mobile_number]
        data.extend([loc.name for loc in self.investigator_1.location_hierarchy().values()])
        response = Interviewer.generate_completion_report(self.survey)
        self.assertNotIn(data, response)

        self.investigator_1.member_answered(question, member_3, 1, self.batch)
        response = Interviewer.generate_completion_report(self.survey)
        self.assertIn(data, response)
 def test_should_return_data_when_generate_data_called(self):
     data = [self.investigator_1.name, self.investigator_1.mobile_number]
     data.extend([loc.name for loc in self.investigator_1.location_hierarchy().values()])
     response = Interviewer.generate_completion_report(self.survey)
     self.assertIn(data, response)