Example #1
0
    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)
Example #2
0
    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)