def test_sum_facts_where(self): self.desired_fact.data_type = 'I' self.desired_fact.save() self._save_fact('01', subject=self.subject) subjects_qs = Project.objects.filter(id=self.subject.id) total = sum_facts_where(self.survey, subjects_qs, match_df=self.desired_fact, match_value=None, sum_dfs=self.desired_fact) self.assertEquals(1, total)
def test_facts_for_different_survey_not_summed(self): "must discriminate by survey" # associate self.subject with self.survey self._save_fact('01', subject=self.subject, survey=self.survey) # associate self.subject2 with a different survey survey2 = Survey.objects.create(name='other', project=self.project) self._save_fact('01', subject=self.subject2, survey=survey2) subjects_qs = Project.objects\ .filter(id__in=(self.subject.id, self.subject2.id)) total = sum_facts_where(self.survey, subjects_qs, match_df=self.desired_fact, match_value=None, sum_dfs=self.desired_fact) self.assertEquals(1, total)
def test_sum_facts_where_multiple(self): match_df = self.desired_fact sum_df = DesiredFact.objects.create(code='code2', label='a', data_type='I', required=True, content_type=self.content_type) self._save_fact('01', subject=self.subject, desired_fact=match_df) self._save_fact('06', subject=self.subject, desired_fact=sum_df) self._save_fact('01', subject=self.subject2, desired_fact=match_df) self._save_fact('05', subject=self.subject2, desired_fact=sum_df) subjects_qs = Project.objects.filter(id__in=(self.subject.id, self.subject2.id)) total = sum_facts_where(self.survey, subjects_qs=subjects_qs, match_df=match_df, match_value=None, sum_dfs=sum_df) self.assertEquals(11, total)