@@ -36,6 +36,9 @@ def test_adapter_relation(sushi_test_project: Project, runtime_renderer: t.Calla
3636 engine_adapter .create_table (
3737 table_name = "foo.another" , columns_to_types = {"col" : exp .DataType .build ("int" )}
3838 )
39+ engine_adapter .create_view (
40+ view_name = "foo.bar_view" , query_or_df = parse_one ("select * from foo.bar" )
41+ )
3942 engine_adapter .create_table (
4043 table_name = "ignored.ignore" , columns_to_types = {"col" : exp .DataType .build ("int" )}
4144 )
@@ -44,11 +47,24 @@ def test_adapter_relation(sushi_test_project: Project, runtime_renderer: t.Calla
4447 renderer ("{{ adapter.get_relation(database=None, schema='foo', identifier='bar') }}" )
4548 == '"memory"."foo"."bar"'
4649 )
50+
51+ assert (
52+ renderer ("{{ adapter.get_relation(database=None, schema='foo', identifier='bar').type }}" )
53+ == "table"
54+ )
55+
56+ assert (
57+ renderer (
58+ "{{ adapter.get_relation(database=None, schema='foo', identifier='bar_view').type }}"
59+ )
60+ == "view"
61+ )
62+
4763 assert renderer (
4864 "{%- set relation = adapter.get_relation(database=None, schema='foo', identifier='bar') -%} {{ adapter.get_columns_in_relation(relation) }}"
4965 ) == str ([Column .from_description (name = "baz" , raw_data_type = "INT" )])
5066
51- assert renderer ("{{ adapter.list_relations(database=None, schema='foo')|length }}" ) == "2 "
67+ assert renderer ("{{ adapter.list_relations(database=None, schema='foo')|length }}" ) == "3 "
5268
5369 assert renderer (
5470 """
@@ -108,26 +124,30 @@ def test_bigquery_get_columns_in_relation(
108124def test_normalization (
109125 sushi_test_project : Project , runtime_renderer : t .Callable , mocker : MockerFixture
110126):
127+ from sqlmesh .core .engine_adapter .base import DataObject , DataObjectType
128+
111129 context = sushi_test_project .context
112130 assert context .target
131+ data_object = DataObject (catalog = "test" , schema = "bla" , name = "bob" , type = DataObjectType .TABLE )
113132
114133 # bla and bob will be normalized to lowercase since the target is duckdb
115134 adapter_mock = mocker .MagicMock ()
116135 adapter_mock .default_catalog = "test"
117136 adapter_mock .dialect = "duckdb"
118-
137+ adapter_mock . get_data_object . return_value = data_object
119138 duckdb_renderer = runtime_renderer (context , engine_adapter = adapter_mock )
120139
121140 schema_bla = schema_ ("bla" , "test" , quoted = True )
122141 relation_bla_bob = exp .table_ ("bob" , db = "bla" , catalog = "test" , quoted = True )
123142
124143 duckdb_renderer ("{{ adapter.get_relation(database=None, schema='bla', identifier='bob') }}" )
125- adapter_mock .table_exists .assert_has_calls ([call (relation_bla_bob )])
144+ adapter_mock .get_data_object .assert_has_calls ([call (relation_bla_bob )])
126145
127146 # bla and bob will be normalized to uppercase since the target is Snowflake, even though the default dialect is duckdb
128147 adapter_mock = mocker .MagicMock ()
129148 adapter_mock .default_catalog = "test"
130149 adapter_mock .dialect = "snowflake"
150+ adapter_mock .get_data_object .return_value = data_object
131151 context .target = SnowflakeConfig (
132152 account = "test" ,
133153 user = "test" ,
@@ -142,10 +162,10 @@ def test_normalization(
142162 relation_bla_bob = exp .table_ ("bob" , db = "bla" , catalog = "test" , quoted = True )
143163
144164 renderer ("{{ adapter.get_relation(database=None, schema='bla', identifier='bob') }}" )
145- adapter_mock .table_exists .assert_has_calls ([call (relation_bla_bob )])
165+ adapter_mock .get_data_object .assert_has_calls ([call (relation_bla_bob )])
146166
147167 renderer ("{{ adapter.get_relation(database='custom_db', schema='bla', identifier='bob') }}" )
148- adapter_mock .table_exists .assert_has_calls (
168+ adapter_mock .get_data_object .assert_has_calls (
149169 [call (exp .table_ ("bob" , db = "bla" , catalog = "custom_db" , quoted = True ))]
150170 )
151171
0 commit comments