Skip to content

Commit 7ac3118

Browse files
committed
Add snowflake test
1 parent 7dca8da commit 7ac3118

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

tests/core/engine_adapter/integration/test_integration.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@
77
import sys
88
import typing as t
99
import shutil
10-
from datetime import datetime, timedelta
10+
from datetime import datetime, timedelta, date
1111
from unittest.mock import patch
1212
import numpy as np # noqa: TID253
1313
import pandas as pd # noqa: TID253
1414
import pytest
1515
import pytz
16+
import time_machine
1617
from sqlglot import exp, parse_one
1718
from sqlglot.optimizer.normalize_identifiers import normalize_identifiers
1819
from sqlglot.optimizer.qualify_columns import quote_identifiers

tests/core/engine_adapter/integration/test_integration_snowflake.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from tests.core.engine_adapter.integration import TestContext
1414
from sqlmesh import model, ExecutionContext
1515
from sqlmesh.core.model import ModelKindName
16+
from sqlmesh.core.snapshot.execution_tracker import QueryExecutionTracker
1617
from datetime import datetime
1718

1819
from tests.core.engine_adapter.integration import (
@@ -307,3 +308,21 @@ def fetch_database_names() -> t.Set[str]:
307308

308309
engine_adapter.drop_catalog(sqlmesh_managed_catalog) # works, catalog is SQLMesh-managed
309310
assert fetch_database_names() == {non_sqlmesh_managed_catalog}
311+
312+
313+
def test_rows_tracker(ctx: TestContext, engine_adapter: SnowflakeEngineAdapter):
314+
sqlmesh = ctx.create_context()
315+
tracker = QueryExecutionTracker()
316+
317+
with tracker.track_execution("a"):
318+
# Snowflake doesn't report row counts for CTAS, so this should not be tracked
319+
engine_adapter.execute(
320+
"CREATE TABLE a (id int) AS SELECT 1 as id", track_rows_processed=True
321+
)
322+
engine_adapter.execute("INSERT INTO a VALUES (2), (3)", track_rows_processed=True)
323+
engine_adapter.execute("INSERT INTO a VALUES (4)", track_rows_processed=True)
324+
325+
stats = tracker.get_execution_stats("a")
326+
assert stats is not None
327+
assert stats.query_count == 2
328+
assert stats.total_rows_processed == 3

0 commit comments

Comments
 (0)