Skip to content

Commit 7c85157

Browse files
authored
Merge pull request #521 from cody-scott/test-materialization-changes
added test to validate swapping from table to view and view to table
2 parents 2c127f8 + 60b275b commit 7c85157

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import pytest
2+
from dbt.tests.util import get_connection, run_dbt
3+
4+
model_sql = """
5+
SELECT 1 AS data
6+
"""
7+
8+
table_mat = """
9+
{{
10+
config({
11+
"materialized": 'table'
12+
})
13+
}}
14+
SELECT 1 AS data
15+
"""
16+
17+
view_mat = """
18+
{{
19+
config({
20+
"materialized": 'view'
21+
})
22+
}}
23+
SELECT 1 AS data
24+
"""
25+
26+
schema = """
27+
version: 2
28+
models:
29+
- name: mat_object
30+
"""
31+
32+
33+
class BaseTableView:
34+
def create_object(self, project, sql):
35+
with get_connection(project.adapter):
36+
project.adapter.execute(sql, fetch=True)
37+
38+
39+
class TestTabletoView(BaseTableView):
40+
"""Test if changing from a table object to a view object correctly replaces"""
41+
42+
@pytest.fixture(scope="class")
43+
def models(self):
44+
return {"mat_object.sql": view_mat, "schema.yml": schema}
45+
46+
def test_passes(self, project):
47+
self.create_object(
48+
project, f"SELECT * INTO {project.test_schema}.mat_object FROM ({model_sql}) t"
49+
)
50+
run_dbt(["run"])
51+
52+
53+
class TestViewtoTable(BaseTableView):
54+
"""Test if changing from a view object to a table object correctly replaces"""
55+
56+
@pytest.fixture(scope="class")
57+
def models(self):
58+
return {"mat_object.sql": table_mat, "schema.yml": schema}
59+
60+
def test_passes(self, project):
61+
self.create_object(project, f"CREATE VIEW {project.test_schema}.mat_object AS {model_sql}")
62+
run_dbt(["run"])

0 commit comments

Comments
 (0)