@@ -1090,3 +1090,60 @@ def test_sqlmesh_model_kwargs_columns_override():
10901090 {"c" : ColumnConfig (name = "c" , data_type = "uinteger" )},
10911091 )
10921092 assert kwargs .get ("columns" ) == {"c" : exp .DataType .build (exp .DataType .Type .UINT )}
1093+
1094+
1095+ def test_empty_vars_config (tmp_path ):
1096+ """Test that a dbt project can be loaded with an empty vars config."""
1097+ dbt_project_dir = tmp_path / "test_project"
1098+ dbt_project_dir .mkdir ()
1099+
1100+ # Create a minimal dbt_project.yml with empty vars
1101+ dbt_project_yml = dbt_project_dir / "dbt_project.yml"
1102+ dbt_project_yml .write_text ("""
1103+ name: test_empty_vars
1104+
1105+ version: "1.0.0"
1106+ config-version: 2
1107+
1108+ profile: test_empty_vars
1109+
1110+ models:
1111+ +start: Jan 1 2022
1112+
1113+ # Empty vars section - various ways to specify empty
1114+ vars:
1115+ """ )
1116+
1117+ # Create a minimal profiles.yml
1118+ profiles_yml = dbt_project_dir / "profiles.yml"
1119+ profiles_yml .write_text ("""
1120+ test_empty_vars:
1121+ outputs:
1122+ dev:
1123+ type: duckdb
1124+ schema: test
1125+ target: dev
1126+ """ )
1127+
1128+ # Create a simple model
1129+ model = dbt_project_dir / "models" / "some_model.sql"
1130+ model .parent .mkdir (parents = True , exist_ok = True )
1131+ model .write_text ("SELECT 1 as id" )
1132+
1133+ # Load the project
1134+ from sqlmesh .dbt .context import DbtContext
1135+ from sqlmesh .dbt .project import Project
1136+ from sqlmesh .core .config import Config
1137+
1138+ context = DbtContext (project_root = dbt_project_dir , sqlmesh_config = Config ())
1139+
1140+ # This should not raise an error even with empty vars
1141+ project = Project .load (context )
1142+
1143+ # Verify the project loaded successfully
1144+ assert project .packages ["test_empty_vars" ] is not None
1145+ assert project .packages ["test_empty_vars" ].name == "test_empty_vars"
1146+
1147+ # Verify the variables are empty (not causing any issues)
1148+ assert project .packages ["test_empty_vars" ].variables == {}
1149+ assert project .context .variables == {}
0 commit comments