Skip to content

Commit 44e0180

Browse files
committed
Fix: Support custom dbt project loaders (#3920)
1 parent b38bc85 commit 44e0180

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

sqlmesh/dbt/loader.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,12 @@ def sqlmesh_config(
5656
if register_comments is not None:
5757
target_to_sqlmesh_args["register_comments"] = register_comments
5858

59+
loader = kwargs.pop("loader", DbtLoader)
60+
if not issubclass(loader, DbtLoader):
61+
raise ConfigError("The loader must be a DbtLoader.")
62+
5963
return Config(
60-
loader=DbtLoader,
64+
loader=loader,
6165
model_defaults=model_defaults,
6266
variables=variables or {},
6367
**{

tests/dbt/test_config.py

+14
Original file line numberDiff line numberDiff line change
@@ -901,6 +901,20 @@ def test_connection_args(tmp_path):
901901
assert not config.gateways["in_memory"].connection.register_comments
902902

903903

904+
def test_custom_dbt_loader():
905+
from sqlmesh.core.loader import SqlMeshLoader
906+
from sqlmesh.dbt.loader import DbtLoader
907+
908+
dbt_project_dir = "tests/fixtures/dbt/sushi_test"
909+
with pytest.raises(ConfigError, match="The loader must be a DbtLoader."):
910+
sqlmesh_config(dbt_project_dir, loader=SqlMeshLoader)
911+
912+
class CustomDbtLoader(DbtLoader):
913+
pass
914+
915+
sqlmesh_config(dbt_project_dir, loader=CustomDbtLoader)
916+
917+
904918
@pytest.mark.cicdonly
905919
def test_db_type_to_relation_class():
906920
from dbt.adapters.bigquery.relation import BigQueryRelation

0 commit comments

Comments
 (0)