datahub/metadata-ingestion/tests/unit/test_dataset_urn.py
Xu Wang aa3363bcc2
feat(ingest): lib - add better support for working with urns (#4172)
Co-authored-by: Xu Wang <xu.wang@grandrounds.com>
2022-02-22 19:39:24 -08:00

43 lines
1.6 KiB
Python

import unittest
from datahub.utilities.urns.data_platform_urn import DataPlatformUrn
from datahub.utilities.urns.dataset_urn import DatasetUrn
from datahub.utilities.urns.error import InvalidUrnError
class TestDatasetUrn(unittest.TestCase):
def test_parse_urn(self) -> None:
dataset_urn_str = "urn:li:dataset:(urn:li:dataPlatform:abc,def,prod)"
dataset_urn = DatasetUrn.create_from_string(dataset_urn_str)
assert (
dataset_urn.get_data_platform_urn()
== DataPlatformUrn.create_from_string("urn:li:dataPlatform:abc")
)
assert dataset_urn.get_dataset_name() == "def"
assert dataset_urn.get_env() == "prod"
assert (
dataset_urn.__str__() == "urn:li:dataset:(urn:li:dataPlatform:abc,def,prod)"
)
assert dataset_urn == DatasetUrn(
"dataset", ["urn:li:dataPlatform:abc", "def", "prod"]
)
def test_invalid_urn(self) -> None:
with self.assertRaises(InvalidUrnError):
DatasetUrn.create_from_string(
"urn:li:abc:(urn:li:dataPlatform:abc,def,prod)"
)
with self.assertRaises(InvalidUrnError):
DatasetUrn.create_from_string(
"urn:li:dataset:(urn:li:user:abc,dataset,prod)"
)
with self.assertRaises(InvalidUrnError):
DatasetUrn.create_from_string("urn:li:dataset:(urn:li:user:abc,dataset)")
with self.assertRaises(InvalidUrnError):
DatasetUrn.create_from_string(
"urn:li:dataset:(urn:li:user:abc,dataset,invalidEnv)"
)