def test_source_metadata_creation(self): ''' The first thing that should happen when the master refresh is instatiated. For the source Datapoints ''' self.set_up() ## create the source metadata ( we are testing this method) ## create_source_meta_data(self.document.id) sc = SourceCampaign.objects.raw(""" SELECT sd.id FROM source_datapoint sd\ WHERE document_id = %s\ AND NOT EXISTS (\ SELECT 1 FROM source_campaign sc\ WHERE sd.campaign_string = sc.campaign_string)\ """, [self.document.id]) missing_campaign_rows = sum(1 for result in sc) ## does every Indicator string has a cooresponding source_indicator? ## si = SourceIndicator.objects.raw(""" SELECT sd.id FROM source_datapoint sd\ WHERE document_id = %s\ AND NOT EXISTS (\ SELECT 1 FROM source_indicator si\ WHERE sd.indicator_string = si.indicator_string)\ """, [self.document.id]) missing_indicator_rows = sum(1 for result in si) ## does every region code has a cooresponding source_region? ## sr = SourceRegion.objects.raw(""" SELECT sd.id FROM source_datapoint sd\ WHERE document_id = %s\ AND NOT EXISTS (\ SELECT 1 FROM source_region sr\ WHERE sd.region_code = sr.region_code)\ """, [self.document.id]) missing_region_rows = sum(1 for result in sr) ## does every source_db row have a a cooresponding source_region? ## self.assertEqual(0,missing_indicator_rows) self.assertEqual(0,missing_campaign_rows) self.assertEqual(0,missing_region_rows)
def test_mapping(self): ''' Here we ensure that after mapping all of the meta data that we have the expected number of rows with the appropiate data associated. ''' self.set_up() mr = MasterRefresh(self.source_datapoints,self.user.id\ ,self.document.id,self.indicator.id) ## create the source metadata ## create_source_meta_data(self.document.id) ## create mappings ( this is mimicking how bo would map metadata ) ## rm_1 = RegionMap.objects.create( mapped_by_id = self.user.id, source_id = SourceRegion.objects.get(region_code=self\ .region_1_code).id, master_id = self.region_1.id) cm_1 = CampaignMap.objects.create( mapped_by_id = self.user.id, source_id = SourceCampaign.objects.get(campaign_string=\ self.campaign_string).id, master_id = self.campaign.id) im_1 = IndicatorMap.objects.create( mapped_by_id = self.user.id, source_id = SourceIndicator.objects.get(indicator_string=\ self.indicator_string).id, master_id = self.indicator.id) mr.source_dps_to_dps() x = DataPoint.objects.filter( region_id = self.region_1.id, campaign_id = self.campaign.id, indicator_id = self.indicator.id, ) self.assertEqual(len(x),1)