|
9 | 9 | from sqlmesh.utils.yaml import load as load_yaml |
10 | 10 |
|
11 | 11 |
|
| 12 | +def _run_test(body, test_name, model, sushi_context): |
| 13 | + return SqlModelTest( |
| 14 | + body=body[test_name], |
| 15 | + test_name=test_name, |
| 16 | + model=model, |
| 17 | + models=sushi_context._models, |
| 18 | + engine_adapter=sushi_context._test_engine_adapter, |
| 19 | + path=None, |
| 20 | + ).run() |
| 21 | + |
| 22 | + |
12 | 23 | def test_ctes(sushi_context: Context) -> None: |
13 | 24 | model = t.cast( |
14 | 25 | SqlModel, |
@@ -55,14 +66,7 @@ def test_ctes(sushi_context: Context) -> None: |
55 | 66 | latest: 2022-01-01 |
56 | 67 | """ |
57 | 68 | ) |
58 | | - result = SqlModelTest( |
59 | | - body=body["test_foo"], |
60 | | - test_name="test_foo", |
61 | | - model=model, |
62 | | - models=sushi_context._models, |
63 | | - engine_adapter=sushi_context._test_engine_adapter, |
64 | | - path=None, |
65 | | - ).run() |
| 69 | + result = _run_test(body, "test_foo", model, sushi_context) |
66 | 70 | assert result and result.wasSuccessful() |
67 | 71 |
|
68 | 72 |
|
@@ -110,14 +114,7 @@ def test_ctes_only(sushi_context: Context) -> None: |
110 | 114 | latest: 2022-01-01 |
111 | 115 | """ |
112 | 116 | ) |
113 | | - result = SqlModelTest( |
114 | | - body=body["test_foo"], |
115 | | - test_name="test_foo", |
116 | | - model=model, |
117 | | - models=sushi_context._models, |
118 | | - engine_adapter=sushi_context._test_engine_adapter, |
119 | | - path=None, |
120 | | - ).run() |
| 117 | + result = _run_test(body, "test_foo", model, sushi_context) |
121 | 118 | assert result and result.wasSuccessful() |
122 | 119 |
|
123 | 120 |
|
@@ -162,14 +159,7 @@ def test_query_only(sushi_context: Context) -> None: |
162 | 159 | latest: 2022-01-01 |
163 | 160 | """ |
164 | 161 | ) |
165 | | - result = SqlModelTest( |
166 | | - body=body["test_foo"], |
167 | | - test_name="test_foo", |
168 | | - model=model, |
169 | | - models=sushi_context._models, |
170 | | - engine_adapter=sushi_context._test_engine_adapter, |
171 | | - path=None, |
172 | | - ).run() |
| 162 | + result = _run_test(body, "test_foo", model, sushi_context) |
173 | 163 | assert result and result.wasSuccessful() |
174 | 164 |
|
175 | 165 |
|
@@ -217,14 +207,7 @@ def test_with_rows(sushi_context: Context) -> None: |
217 | 207 | latest: 2022-01-01 |
218 | 208 | """ |
219 | 209 | ) |
220 | | - result = SqlModelTest( |
221 | | - body=body["test_foo"], |
222 | | - test_name="test_foo", |
223 | | - model=model, |
224 | | - models=sushi_context._models, |
225 | | - engine_adapter=sushi_context._test_engine_adapter, |
226 | | - path=None, |
227 | | - ).run() |
| 210 | + result = _run_test(body, "test_foo", model, sushi_context) |
228 | 211 | assert result and result.wasSuccessful() |
229 | 212 |
|
230 | 213 |
|
@@ -269,12 +252,48 @@ def test_without_rows(sushi_context: Context) -> None: |
269 | 252 | latest: 2022-01-01 |
270 | 253 | """ |
271 | 254 | ) |
272 | | - result = SqlModelTest( |
273 | | - body=body["test_foo"], |
274 | | - test_name="test_foo", |
275 | | - model=model, |
276 | | - models=sushi_context._models, |
277 | | - engine_adapter=sushi_context._test_engine_adapter, |
278 | | - path=None, |
279 | | - ).run() |
| 255 | + result = _run_test(body, "test_foo", model, sushi_context) |
| 256 | + assert result and result.wasSuccessful() |
| 257 | + |
| 258 | + |
| 259 | +def test_column_order(sushi_context: Context) -> None: |
| 260 | + model = t.cast( |
| 261 | + SqlModel, |
| 262 | + sushi_context.upsert_model( |
| 263 | + load_model( |
| 264 | + parse( |
| 265 | + """ |
| 266 | + MODEL ( |
| 267 | + name sushi.foo, |
| 268 | + kind FULL, |
| 269 | + ); |
| 270 | +
|
| 271 | + SELECT id, value, ds FROM raw; |
| 272 | + """ |
| 273 | + ) |
| 274 | + ) |
| 275 | + ), |
| 276 | + ) |
| 277 | + |
| 278 | + body = load_yaml( |
| 279 | + """ |
| 280 | +test_foo: |
| 281 | + model: sushi.foo |
| 282 | + inputs: |
| 283 | + raw: |
| 284 | + - id: 1 |
| 285 | + value: 2 |
| 286 | + ds: 3 |
| 287 | + outputs: |
| 288 | + query: |
| 289 | + - id: 1 |
| 290 | + ds: 3 |
| 291 | + value: 2 |
| 292 | + vars: |
| 293 | + start: 2022-01-01 |
| 294 | + end: 2022-01-01 |
| 295 | + latest: 2022-01-01 |
| 296 | + """ |
| 297 | + ) |
| 298 | + result = _run_test(body, "test_foo", model, sushi_context) |
280 | 299 | assert result and result.wasSuccessful() |
0 commit comments