Exemple #1
0
    def test_merge_one_subregion(self):
        aux = TEST_AUX_DATA.copy()
        pipeline = DefaultPipeline()

        record = {"country_code": "AB"}
        key = pipeline.merge(record, {"metadata": aux})
        self.assertTrue(key is None)

        record = {"country_code": "AB", "subregion1_code": None}
        key = pipeline.merge(record, {"metadata": aux})
        self.assertEqual(key, "AB")

        record = {"country_code": "AB", "subregion1_code": "1"}
        key = pipeline.merge(record, {"metadata": aux})
        self.assertEqual(key, "AB_1")
Exemple #2
0
    def test_merge_null_vs_empty(self):
        aux = TEST_AUX_DATA.copy()
        pipeline = DefaultPipeline()

        # Only one record has null region1_code
        record = {"country_code": "AD", "subregion1_code": None}
        key = pipeline.merge(record, {"metadata": aux})
        self.assertEqual(key, "AD")

        # Empty means "do not compare" rather than "filter non-null"
        record = {"country_code": "AD", "subregion1_code": ""}
        key = pipeline.merge(record, {"metadata": aux})
        self.assertEqual(key, None)

        # There are multiple records that fit this merge, so it's ambiguous
        record = {"country_code": "AD", "subregion1_code": "1"}
        key = pipeline.merge(record, {"metadata": aux})
        self.assertEqual(key, None)

        # Match fails because subregion1_code is not null
        record = {
            "country_code": "AD",
            "subregion1_code": None,
            "subregion2_code": "1"
        }
        key = pipeline.merge(record, {"metadata": aux})
        self.assertEqual(key, None)

        # Match is exact so the merge is unambiguous
        record = {
            "country_code": "AD",
            "subregion1_code": "1",
            "subregion2_code": "1"
        }
        key = pipeline.merge(record, {"metadata": aux})
        self.assertEqual(key, "AD_1_1")

        # Even though we don't have subregion1_code, there's only one record that matches
        record = {
            "country_code": "AD",
            "subregion1_code": "",
            "subregion2_code": "1"
        }
        key = pipeline.merge(record, {"metadata": aux})
        self.assertEqual(key, "AD_1_1")
Exemple #3
0
 def test_merge_by_key(self):
     aux = TEST_AUX_DATA.copy()
     pipeline = DefaultPipeline()
     record = {"key": "AE_1_2"}
     key = pipeline.merge(record, {"metadata": aux})
     self.assertEqual(key, record["key"])
Exemple #4
0
 def test_merge_zero_subregions(self):
     aux = TEST_AUX_DATA.copy()
     pipeline = DefaultPipeline()
     record = {"country_code": "AA"}
     key = pipeline.merge(record, {"metadata": aux})
     self.assertEqual(key, "AA")
Exemple #5
0
 def test_merge_no_match(self):
     aux = TEST_AUX_DATA.copy()
     pipeline = DefaultPipeline()
     record = {"country_code": "__"}
     key = pipeline.merge(record, {"metadata": aux})
     self.assertTrue(key is None)