@@ -1090,3 +1090,61 @@ 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+
1129+ # Create a simple model
1130+ model = dbt_project_dir / "models" / "some_model.sql"
1131+ model .parent .mkdir (parents = True , exist_ok = True )
1132+ model .write_text ("SELECT 1 as id" )
1133+
1134+ # Load the project
1135+ from sqlmesh .dbt .context import DbtContext
1136+ from sqlmesh .dbt .project import Project
1137+ from sqlmesh .core .config import Config
1138+
1139+ context = DbtContext (project_root = dbt_project_dir , sqlmesh_config = Config ())
1140+
1141+ # This should not raise an error even with empty vars
1142+ project = Project .load (context )
1143+
1144+ # Verify the project loaded successfully
1145+ assert project .packages ["test_empty_vars" ] is not None
1146+ assert project .packages ["test_empty_vars" ].name == "test_empty_vars"
1147+
1148+ # Verify the variables are empty (not causing any issues)
1149+ assert project .packages ["test_empty_vars" ].variables == {}
1150+ assert project .context .variables == {}
0 commit comments