Ejemplo n.º 1
0
    def test_extract_references_bronwaarde_object_ref(self):
        row = {
            "id":
            random_string(),
            "name":
            random_string(),
            "col":
            random_string(),
            "ref_col": [{
                "ref_attr": random_string(),
                "other_col": random_string(),
                "another_col": random_string(),
            }, {
                "ref_attr": random_string(),
                "other_col": random_string(),
                "another_col": random_string(),
            }],
        }
        field_source = {
            "bronwaarde": "ref_col.ref_attr",
        }
        field_type = "GOB.ManyReference"
        result = _extract_references(row, field_source, field_type)
        expected_result = [{
            "bronwaarde": row["ref_col"][0]["ref_attr"],
            "ref_attr": row["ref_col"][0]["ref_attr"],
            "other_col": row["ref_col"][0]["other_col"],
            "another_col": row["ref_col"][0]["another_col"],
        }, {
            "bronwaarde": row["ref_col"][1]["ref_attr"],
            "ref_attr": row["ref_col"][1]["ref_attr"],
            "other_col": row["ref_col"][1]["other_col"],
            "another_col": row["ref_col"][1]["another_col"],
        }]
        self.assertEqual(expected_result, result)

        field_source = {
            "bronwaarde": "=somevalue",
        }
        result = _extract_references(row, field_source, field_type)
        expected_result = [{"bronwaarde": 'somevalue'}]
        self.assertEqual(expected_result, result)
Ejemplo n.º 2
0
    def test_extract_references_json_force_list(self):
        row = {
            "id": random_string(),
            "name": random_string(),
            # Added space is important. Should result in one object with the added space in the attribute (as opposed to two separate objects)
            "col": random_string() + ' ' + random_string(),
        }
        field_source = {
            "someattr": "col",
        }
        field_type = "GOB.JSON"
        result = _extract_references(row, field_source, field_type, True)

        expected_result = [{'someattr': row['col']}]
        self.assertEqual(expected_result, result)

        # And now without force_list set to True
        result = _extract_references(row, field_source, field_type, False)
        expected_result = {'someattr': row['col']}
        self.assertEqual(expected_result, result)
Ejemplo n.º 3
0
    def test_string_split_many_reference(self):
        row = {
            's1': "abc",
            's2': "a;b;c",
        }
        field_type = 'GOB.ManyReference'
        source = {}

        source['bronwaarde'] = 's1'
        result = _extract_references(row, source, field_type)
        self.assertEqual(result, [{'bronwaarde': 'abc'}])

        source['bronwaarde'] = 's2'
        result = _extract_references(row, source, field_type)
        self.assertEqual(result, [{'bronwaarde': 'a;b;c'}])

        source['format'] = {}

        source['bronwaarde'] = 's1'
        result = _extract_references(row, source, field_type)
        self.assertEqual(result, [{'bronwaarde': 'abc'}])

        source['bronwaarde'] = 's2'
        result = _extract_references(row, source, field_type)
        self.assertEqual(result, [{'bronwaarde': 'a;b;c'}])

        source['format'] = {'split': ";"}

        source['bronwaarde'] = 's1'
        result = _extract_references(row, source, field_type)
        self.assertEqual(result, [{'bronwaarde': 'abc'}])

        source['bronwaarde'] = 's2'
        result = _extract_references(row, source, field_type)
        self.assertEqual(result, [{
            'bronwaarde': 'a'
        }, {
            'bronwaarde': 'b'
        }, {
            'bronwaarde': 'c'
        }])

        source['bronwaarde'] = 's2'
        row['s2'] = 'aap;noot;mies;mies;noot;aap'
        result = _extract_references(row, source, field_type)
        self.assertEqual(result, [{
            'bronwaarde': 'aap'
        }, {
            'bronwaarde': 'mies'
        }, {
            'bronwaarde': 'noot'
        }])
Ejemplo n.º 4
0
    def test_extract_references_not_many(self):
        row = {
            "rowkey a": "val a",
            "rowkey b": "val b",
        }
        field_source = {"key a": "rowkey a", "key b": "rowkey b"}
        field_type = "GOB.JSON"

        expected_result = {
            'key a': 'safe val a',
            'key b': 'safe val b',
        }

        self.assertEqual(expected_result,
                         _extract_references(row, field_source, field_type))
Ejemplo n.º 5
0
    def test_extract_references_singleref_objectref(self):
        row = {
            "id": random_string(),
            "name": random_string(),
            "ref_col": {
                "a": random_string(),
                "b": random_string(),
                "c": random_string(),
            }
        }
        field_source = {"bronwaarde": "ref_col.b"}
        field_type = "GOB.Reference"

        result = _extract_references(row, field_source, field_type)
        expected_value = {
            "a": row["ref_col"]["a"],
            "b": row["ref_col"]["b"],
            "c": row["ref_col"]["c"],
            "bronwaarde": row["ref_col"]["b"]
        }
        self.assertEqual(expected_value, result)