diff --git a/tests/functional/warehouse_test/test_warehouses.py b/tests/functional/warehouse_test/test_warehouses.py index 717784185..268473729 100644 --- a/tests/functional/warehouse_test/test_warehouses.py +++ b/tests/functional/warehouse_test/test_warehouses.py @@ -3,35 +3,34 @@ import os - models__override_warehouse_sql = """ {{ config(snowflake_warehouse=env_var('SNOWFLAKE_TEST_ALT_WAREHOUSE', 'DBT_TEST_ALT'), materialized='table') }} select current_warehouse() as warehouse - """ models__expected_warehouse_sql = """ {{ config(materialized='table') }} select '{{ env_var("SNOWFLAKE_TEST_ALT_WAREHOUSE", "DBT_TEST_ALT") }}' as warehouse - """ models__invalid_warehouse_sql = """ {{ config(snowflake_warehouse='DBT_TEST_DOES_NOT_EXIST') }} select current_warehouse() as warehouse - """ project_config_models__override_warehouse_sql = """ {{ config(materialized='table') }} select current_warehouse() as warehouse - """ project_config_models__expected_warehouse_sql = """ {{ config(materialized='table') }} select '{{ env_var("SNOWFLAKE_TEST_ALT_WAREHOUSE", "DBT_TEST_ALT") }}' as warehouse +""" +project_config_models__warehouse_sql = """ +{{ config(materialized='table') }} +select current_warehouse() as warehouse """ @@ -90,3 +89,47 @@ def test_snowflake_override_ok(self, project): ] ) check_relations_equal(project.adapter, ["OVERRIDE_WAREHOUSE", "EXPECTED_WAREHOUSE"]) + + +class TestInvalidConfigWarehouse: + @pytest.fixture(scope="class") + def models(self): + return { + "invalid_warehouse.sql": project_config_models__warehouse_sql, + } + + @pytest.fixture(scope="class") + def project_config_update(self): + return { + "config-version": 2, + "models": { + "test": {"snowflake_warehouse": "DBT_TEST_DOES_NOT_EXIST"}, + }, + } + + def test_snowflake_override_invalid(self, project): + result = run_dbt(["run", "--models", "invalid_warehouse"], expect_pass=False) + assert "Object does not exist, or operation cannot be performed" in result[0].message + + +class TestValidConfigWarehouse: + @pytest.fixture(scope="class") + def models(self): + return { + "valid_warehouse.sql": project_config_models__warehouse_sql, + } + + @pytest.fixture(scope="class") + def project_config_update(self): + return { + "config-version": 2, + "models": { + "test": { + "snowflake_warehouse": "DBT_TESTING", + }, + }, + } + + def test_snowflake_warehouse_valid(self, project): + result = run_dbt(["run", "--models", "valid_warehouse"]) + assert "DBT_TESTING" in result[0].node.config.get("snowflake_warehouse")