Skip to content

Commit 261b65c

Browse files
committed
Add snowflake test
1 parent b3c6a9d commit 261b65c

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
@@ -6,12 +6,13 @@
66
import sys
77
import typing as t
88
import shutil
9-
from datetime import datetime, timedelta
9+
from datetime import datetime, timedelta, date
1010
from unittest.mock import patch
1111
import numpy as np # noqa: TID253
1212
import pandas as pd # noqa: TID253
1313
import pytest
1414
import pytz
15+
import time_machine
1516
from sqlglot import exp, parse_one
1617
from sqlglot.optimizer.normalize_identifiers import normalize_identifiers
1718
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)