Fixes #16591 : DBT Glossary Term linking Independent from Tag rule (#16745)

This commit is contained in:
Suman Maharana 2024-06-21 17:36:25 +05:30 committed by GitHub
parent 5bd48fcc34
commit f425d9bf73
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 67 additions and 5 deletions

View File

@ -721,7 +721,7 @@ class DbtSource(DbtServiceSource):
get_tag_labels(
metadata=self.metadata,
tags=dbt_meta_info.openmetadata.glossary,
include_tags=self.source_config.includeTags,
include_tags=True,
tag_type=GlossaryTerm,
)
or []
@ -734,7 +734,7 @@ class DbtSource(DbtServiceSource):
metadata=self.metadata,
tags=[tier_fqn.split(fqn.FQN_SEPARATOR)[-1]],
classification_name=tier_fqn.split(fqn.FQN_SEPARATOR)[0],
include_tags=self.source_config.includeTags,
include_tags=True,
)
or []
)

View File

@ -32,7 +32,13 @@
"model_tag_two"
],
"meta": {
"owner": "aaron_johnson0"
"owner": "aaron_johnson0",
"openmetadata": {
"glossary": [
"Test_Glossary.term_one",
"Test_Glossary.term_two.nested_term.more_nested_term"
]
}
},
"materialized": "table",
"incremental_strategy": null,
@ -114,7 +120,13 @@
}
},
"meta": {
"owner": "aaron_johnson0"
"owner": "aaron_johnson0",
"openmetadata": {
"glossary": [
"Test_Glossary.term_one",
"Test_Glossary.term_two.nested_term.more_nested_term"
]
}
},
"docs": {
"show": true,
@ -131,7 +143,13 @@
"model_tag_two"
],
"meta": {
"owner": "aaron_johnson0"
"owner": "aaron_johnson0",
"openmetadata": {
"glossary": [
"Test_Glossary.term_one",
"Test_Glossary.term_two.nested_term.more_nested_term"
]
}
}
},
"created_at": 1673981809.96386,

View File

@ -251,6 +251,21 @@ MOCK_TAG_LABELS = [
),
]
MOCK_GLOASSARY_LABELS = [
TagLabel(
tagFQN="Test_Glossary.term_one",
labelType=LabelType.Automated,
state=State.Suggested,
source=TagSource.Glossary,
),
TagLabel(
tagFQN="Test_Glossary.term_two.nested_term.more_nested_term",
labelType=LabelType.Automated,
state=State.Suggested,
source=TagSource.Glossary,
),
]
class DbtUnitTest(TestCase):
"""
@ -511,3 +526,32 @@ class DbtUnitTest(TestCase):
zip(expected_data_models, data_model_list)
):
self.assertEqual(expected, original)
@patch("metadata.utils.tag_utils.get_tag_label")
def test_dbt_glossary_tiers(self, get_tag_label):
get_tag_label.side_effect = [
TagLabel(
tagFQN="Test_Glossary.term_one",
labelType=LabelType.Automated.value,
state=State.Suggested.value,
source=TagSource.Glossary.value,
),
TagLabel(
tagFQN="Test_Glossary.term_two.nested_term.more_nested_term",
labelType=LabelType.Automated.value,
state=State.Suggested.value,
source=TagSource.Glossary.value,
),
]
_, dbt_objects = self.get_dbt_object_files(
mock_manifest=MOCK_SAMPLE_MANIFEST_V8
)
manifest_node = dbt_objects.dbt_manifest.nodes.get(
"model.jaffle_shop.customers"
)
dbt_meta_tags = self.dbt_source_obj.process_dbt_meta(
manifest_meta=manifest_node.meta
)
self.assertEqual(dbt_meta_tags, MOCK_GLOASSARY_LABELS)