Skip to content

Commit

Permalink
Fix unit tests for incremental models with alias (#10755) (#10769)
Browse files Browse the repository at this point in the history
(cherry picked from commit a8d4ba2)

Co-authored-by: Katsuya Shimabukuro <katsu.generation.888@gmail.com>
Co-authored-by: Gerda Shank <gerda@dbtlabs.com>
  • Loading branch information
3 people committed Sep 27, 2024
1 parent 69f9212 commit 924ce2d
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 @@ -1593,7 +1593,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 @@ -275,6 +275,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 @@ -21,6 +21,8 @@
test_my_model_yml,
datetime_test,
my_incremental_model_sql,
my_incremental_model_versioned_yml,
my_incremental_model_with_alias_sql,
event_sql,
test_my_model_incremental_yml_basic,
test_my_model_yml_invalid,
Expand Down Expand Up @@ -261,6 +263,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 924ce2d

Please sign in to comment.