def test_get_sites(self): """It should return all and only the sites for a given program""" expected = SiteProfileFactory() expected2 = SiteProfileFactory() ResultFactory(indicator=self.indicator, sites=[expected, expected2]) sites = self.program.get_sites() IndicatorFactory.create_batch(3) ResultFactory.create_batch(3) SiteProfileFactory.create_batch(3) self.assertEqual(len(sites), 2) self.assertEqual(len(SiteProfile.objects.all()), 5)
def generate_core_indicator_data(c_params=None, p_count=3, i_count=4): """ Create up to 5 countries and an arbitrary number of related programs and indicators """ if c_params is None: c_params = [ ('Colombia', 'CO'), ('Tunisia', 'TN'), ] program_ids = [] indicator_ids = [] for i in range(len(c_params)): country = CountryFactory(country=c_params[i][0], code=c_params[i][1]) programs = ProgramFactory.create_batch( p_count, countries=[country], name=Sequence(lambda n: 'Program %s %s' % (country.code, n)), funding_status="Funded", ) for p in programs: program_ids.append(p.id) indicators = IndicatorFactory.create_batch( i_count, program=p, unit_of_measure_type=Indicator.NUMBER, is_cumulative=False, direction_of_change=Indicator.DIRECTION_OF_CHANGE_NONE, target_frequency=Indicator.ANNUAL) indicator_ids = [i.id for i in indicators] p.indicator_set.add(*indicators) return program_ids, indicator_ids