2023-08-02 07:23:48 +03:00
|
|
|
from datahub.ingestion.api.common import PipelineContext
|
2024-05-02 21:04:18 +02:00
|
|
|
from datahub.ingestion.source.metabase import (
|
|
|
|
MetabaseConfig,
|
|
|
|
MetabaseReport,
|
|
|
|
MetabaseSource,
|
|
|
|
)
|
2023-08-02 07:23:48 +03:00
|
|
|
|
|
|
|
|
|
|
|
class TestMetabaseSource(MetabaseSource):
|
|
|
|
def __init__(self, ctx: PipelineContext, config: MetabaseConfig):
|
|
|
|
self.config = config
|
2024-05-02 21:04:18 +02:00
|
|
|
self.report = MetabaseReport()
|
2023-08-02 07:23:48 +03:00
|
|
|
|
|
|
|
|
|
|
|
def test_get_platform_instance():
|
|
|
|
ctx = PipelineContext(run_id="test-metabase")
|
|
|
|
config = MetabaseConfig()
|
|
|
|
config.connect_uri = "http://localhost:3000"
|
|
|
|
# config.database_id_to_instance_map = {"42": "my_main_clickhouse"}
|
|
|
|
# config.platform_instance_map = {"clickhouse": "my_only_clickhouse"}
|
|
|
|
metabase = TestMetabaseSource(ctx, config)
|
|
|
|
|
|
|
|
# no mappings defined
|
|
|
|
assert metabase.get_platform_instance("clickhouse", 42) is None
|
|
|
|
|
|
|
|
# database_id_to_instance_map is defined, key is present
|
|
|
|
metabase.config.database_id_to_instance_map = {"42": "my_main_clickhouse"}
|
|
|
|
assert metabase.get_platform_instance(None, 42) == "my_main_clickhouse"
|
|
|
|
|
|
|
|
# database_id_to_instance_map is defined, key is missing
|
|
|
|
assert metabase.get_platform_instance(None, 999) is None
|
|
|
|
|
|
|
|
# database_id_to_instance_map is defined, key is missing, platform_instance_map is defined and key present
|
|
|
|
metabase.config.platform_instance_map = {"clickhouse": "my_only_clickhouse"}
|
|
|
|
assert metabase.get_platform_instance("clickhouse", 999) == "my_only_clickhouse"
|
|
|
|
|
|
|
|
# database_id_to_instance_map is defined, key is missing, platform_instance_map is defined and key missing
|
|
|
|
assert metabase.get_platform_instance("missing-platform", 999) is None
|
|
|
|
|
|
|
|
# database_id_to_instance_map is missing, platform_instance_map is defined and key present
|
|
|
|
metabase.config.database_id_to_instance_map = None
|
|
|
|
assert metabase.get_platform_instance("clickhouse", 999) == "my_only_clickhouse"
|
|
|
|
|
|
|
|
# database_id_to_instance_map is missing, platform_instance_map is defined and key missing
|
|
|
|
assert metabase.get_platform_instance("missing-platform", 999) is None
|
2024-02-05 12:06:50 +00:00
|
|
|
|
|
|
|
|
|
|
|
def test_set_display_uri():
|
|
|
|
display_uri = "some_host:1234"
|
|
|
|
|
|
|
|
config = MetabaseConfig.parse_obj({"display_uri": display_uri})
|
|
|
|
|
|
|
|
assert config.connect_uri == "localhost:3000"
|
|
|
|
assert config.display_uri == display_uri
|