From 4a3e5e2ac526571343a659cde00c36db1a88196d Mon Sep 17 00:00:00 2001 From: Michelle Ark Date: Tue, 17 Dec 2024 17:40:08 -0500 Subject: [PATCH] add initial functional test for catalog parsing --- core/dbt/cli/requires.py | 5 +++ .../catalogs/test_catalogs_parsing.py | 36 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 tests/functional/catalogs/test_catalogs_parsing.py diff --git a/core/dbt/cli/requires.py b/core/dbt/cli/requires.py index 72b3d45bf59..892c065f4a1 100644 --- a/core/dbt/cli/requires.py +++ b/core/dbt/cli/requires.py @@ -375,6 +375,11 @@ def setup_manifest(ctx: Context, write: bool = True, write_perf_info: bool = Fal ctx.obj["manifest"] = parse_manifest( runtime_config, write_perf_info, write, ctx.obj["flags"].write_json ) + + adapter = get_adapter(runtime_config) + catalogs = ctx.obj["catalogs"].catalogs if "catalogs" in ctx.obj else [] + for catalog in catalogs: + adapter.set_catalog_integration(catalog.name, catalog.active_write_integration) else: register_adapter(runtime_config, get_mp_context()) adapter = get_adapter(runtime_config) diff --git a/tests/functional/catalogs/test_catalogs_parsing.py b/tests/functional/catalogs/test_catalogs_parsing.py new file mode 100644 index 00000000000..3bb71d1ddc7 --- /dev/null +++ b/tests/functional/catalogs/test_catalogs_parsing.py @@ -0,0 +1,36 @@ +from unittest import mock + +import pytest + +from dbt.tests.util import run_dbt, write_config_file + + +class TestCatalogsParsing: + + @pytest.fixture + def catalogs(self): + return { + "catalogs": [ + { + "name": "test_catalog", + "write_integrations": [ + { + "name": "write_integration_name", + "external_volume": "write_integration_external_volume", + "table_format": "iceberg", + "catalog_type": "glue", + } + ], + } + ] + } + + def test_catalog_parsing_adapter_initialialization(self, catalogs, project): + write_config_file(catalogs, project.project_root, "catalogs.yml") + + mock_set_catalog_integration = mock.Mock() + with mock.patch.object( + type(project.adapter), "set_catalog_integration", mock_set_catalog_integration + ): + run_dbt(["run"]) + mock_set_catalog_integration.assert_called_once()