|
13 | 13 | from sqlmesh.core.model import SqlModel, load_sql_based_model |
14 | 14 | from sqlmesh.core.plan import Plan |
15 | 15 | from sqlmesh.core.table_diff import TableDiff |
16 | | -from tests.core.engine_adapter.integration import TestContext |
| 16 | +from sqlmesh.utils import CorrelationId |
17 | 17 | from pytest import FixtureRequest |
| 18 | +from tests.core.engine_adapter.integration import TestContext |
18 | 19 | from tests.core.engine_adapter.integration import ( |
19 | 20 | TestContext, |
20 | 21 | generate_pytest_params, |
@@ -400,3 +401,24 @@ def test_table_diff_table_name_matches_column_name(ctx: TestContext): |
400 | 401 |
|
401 | 402 | assert row_diff.stats["join_count"] == 1 |
402 | 403 | assert row_diff.full_match_count == 1 |
| 404 | + |
| 405 | + |
| 406 | +def test_correlation_id_in_bigquery_job_labels(ctx: TestContext): |
| 407 | + model_name = ctx.table("test") |
| 408 | + |
| 409 | + sqlmesh = ctx.create_context() |
| 410 | + |
| 411 | + sqlmesh.upsert_model( |
| 412 | + load_sql_based_model(d.parse(f"MODEL (name {model_name}, kind FULL); SELECT 1 AS col")) |
| 413 | + ) |
| 414 | + |
| 415 | + plan: Plan = sqlmesh.plan(auto_apply=True, no_prompts=True) |
| 416 | + |
| 417 | + correlation_id = CorrelationId.from_plan_id(plan.plan_id) |
| 418 | + snapshot_evaluator = sqlmesh.snapshot_evaluator(correlation_id) |
| 419 | + adapter = t.cast(BigQueryEngineAdapter, snapshot_evaluator.adapter) |
| 420 | + |
| 421 | + assert adapter.correlation_id is not None |
| 422 | + |
| 423 | + labels = adapter._job_params.get("labels") |
| 424 | + assert labels == {correlation_id.job_type.value.lower(): correlation_id.job_id} |
0 commit comments