mirror of
https://github.com/datahub-project/datahub.git
synced 2025-07-04 07:34:44 +00:00
58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
import pytest
|
|
|
|
from datahub.metadata.schema_classes import DatasetPropertiesClass
|
|
from tests.test_helpers.graph_helpers import MockDataHubGraph
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_datahub_graph(pytestconfig):
|
|
graph = MockDataHubGraph()
|
|
demo_data_path = pytestconfig.rootpath / "examples" / "demo_data" / "demo_data.json"
|
|
graph.import_file(demo_data_path)
|
|
return graph
|
|
|
|
|
|
def test_get_entities(mock_datahub_graph):
|
|
aspect_name = "datasetProperties"
|
|
urn_1 = "urn:li:dataset:(urn:li:dataPlatform:bigquery,bigquery-public-data.covid19_aha.hospital_beds,PROD)"
|
|
urn_2 = "urn:li:dataset:(urn:li:dataPlatform:bigquery,bigquery-public-data.covid19_geotab_mobility_impact.city_congestion,PROD)"
|
|
|
|
entities = mock_datahub_graph.get_entities(
|
|
entity_name="dataset",
|
|
urns=[
|
|
urn_1, # misses datasetProperties aspect
|
|
urn_2, # has datasetProperties aspect
|
|
],
|
|
aspects=[aspect_name],
|
|
)
|
|
|
|
# Verify results
|
|
assert entities
|
|
assert (
|
|
urn_1 in entities
|
|
and aspect_name not in entities[urn_1]
|
|
and entities[urn_1] == {}
|
|
)
|
|
assert (
|
|
urn_2 in entities
|
|
and aspect_name in entities[urn_2]
|
|
and isinstance(entities[urn_2][aspect_name][0], DatasetPropertiesClass)
|
|
and entities[urn_2][aspect_name][1] is None
|
|
)
|
|
|
|
# Test system_metadata is always None regardless of flag
|
|
entities_with_metadata = mock_datahub_graph.get_entities(
|
|
entity_name="dataset",
|
|
urns=[urn_2],
|
|
aspects=[aspect_name],
|
|
with_system_metadata=True,
|
|
)
|
|
assert (
|
|
urn_2 in entities_with_metadata
|
|
and aspect_name in entities_with_metadata[urn_2]
|
|
and isinstance(
|
|
entities_with_metadata[urn_2][aspect_name][0], DatasetPropertiesClass
|
|
)
|
|
and entities_with_metadata[urn_2][aspect_name][1] is None
|
|
)
|