Skip to content

Commit

Permalink
Fix unit tests for incremental models with alias (#10755)
Browse files Browse the repository at this point in the history
  • Loading branch information
katsugeneration authored Sep 24, 2024
1 parent 09e973d commit a8d4ba2
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 1 deletion.
6 changes: 6 additions & 0 deletions .changes/unreleased/Fixes-20240922-133527.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
kind: Fixes
body: Fix unit tests for incremental model with alias
time: 2024-09-22T13:35:27.991398741Z
custom:
Author: katsugeneration
Issue: "10754"
2 changes: 1 addition & 1 deletion core/dbt/context/providers.py
Original file line number Diff line number Diff line change
Expand Up @@ -1661,7 +1661,7 @@ def this(self) -> Optional[str]:
if self.model.this_input_node_unique_id:
this_node = self.manifest.expect(self.model.this_input_node_unique_id)
self.model.set_cte(this_node.unique_id, None) # type: ignore
return self.adapter.Relation.add_ephemeral_prefix(this_node.name)
return self.adapter.Relation.add_ephemeral_prefix(this_node.identifier) # type: ignore
return None


Expand Down
22 changes: 22 additions & 0 deletions tests/functional/unit_testing/fixtures.py
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,28 @@
{% endif %}
"""

my_incremental_model_with_alias_sql = """
{{
config(
materialized='incremental',
alias='alias_name'
)
}}
select * from {{ ref('events') }}
{% if is_incremental() %}
where event_time > (select max(event_time) from {{ this }})
{% endif %}
"""

my_incremental_model_versioned_yml = """
models:
- name: my_incremental_model
latest_version: 1
versions:
- v: 1
"""

test_my_model_incremental_yml_basic = """
unit_tests:
- name: incremental_false
Expand Down
38 changes: 38 additions & 0 deletions tests/functional/unit_testing/test_unit_testing.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
external_package,
external_package__accounts_seed_csv,
my_incremental_model_sql,
my_incremental_model_versioned_yml,
my_incremental_model_with_alias_sql,
my_model_a_sql,
my_model_b_sql,
my_model_sql,
Expand Down Expand Up @@ -271,6 +273,42 @@ def test_no_this_input(self, project):
"""


class TestUnitTestIncrementalModelWithAlias:
@pytest.fixture(scope="class")
def models(self):
return {
"my_incremental_model.sql": my_incremental_model_with_alias_sql,
"events.sql": event_sql,
"schema.yml": test_my_model_incremental_yml_basic,
}

def test_basic(self, project):
results = run_dbt(["run"])
assert len(results) == 2

# Select by model name
results = run_dbt(["test", "--select", "my_incremental_model"], expect_pass=True)
assert len(results) == 2


class TestUnitTestIncrementalModelWithVersion:
@pytest.fixture(scope="class")
def models(self):
return {
"my_incremental_model.sql": my_incremental_model_sql,
"events.sql": event_sql,
"schema.yml": my_incremental_model_versioned_yml + test_my_model_incremental_yml_basic,
}

def test_basic(self, project):
results = run_dbt(["run"])
assert len(results) == 2

# Select by model name
results = run_dbt(["test", "--select", "my_incremental_model"], expect_pass=True)
assert len(results) == 2


class TestUnitTestExplicitSeed:
@pytest.fixture(scope="class")
def seeds(self):
Expand Down

0 comments on commit a8d4ba2

Please sign in to comment.