Skip to content

Commit 51c0bab

Browse files
extend integration test
1 parent f0635e6 commit 51c0bab

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

tests/core/test_integration.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4570,6 +4570,36 @@ def test_multi_virtual_layer(mocker):
45704570
== " item_id global_one macro_one extra\n0 gateway_2 88 1 c"
45714571
)
45724572

4573+
# Create dev environment
4574+
model = context.get_model("db.local_schema.model_one")
4575+
context.upsert_model(model.copy(update={"query": model.query.select("'d' AS extra")}))
4576+
plan = context.plan_builder("dev").build()
4577+
context.apply(plan)
4578+
4579+
dev_environment = context.state_sync.get_environment("dev")
4580+
assert dev_environment is not None
4581+
metadata = DuckDBMetadata.from_context(context)
4582+
start_schemas = set(metadata.schemas)
4583+
assert sorted(start_schemas) == sorted(
4584+
{"local_schema", "local_schema__dev", "sqlmesh", "sqlmesh__local_schema"}
4585+
)
4586+
4587+
# Invalidate dev environment
4588+
context.invalidate_environment("dev")
4589+
invalidate_environment = context.state_sync.get_environment("dev")
4590+
assert invalidate_environment is not None
4591+
schemas_prior_to_janitor = set(metadata.schemas)
4592+
assert invalidate_environment.expiration_ts < dev_environment.expiration_ts # type: ignore
4593+
assert sorted(start_schemas) == sorted(schemas_prior_to_janitor)
4594+
4595+
# Run janitor
4596+
context._run_janitor()
4597+
removed_schemas = start_schemas - set(metadata.schemas)
4598+
assert context.state_sync.get_environment("dev") is None
4599+
assert removed_schemas == {"local_schema__dev"}
4600+
prod_environment = context.state_sync.get_environment("prod")
4601+
assert len(prod_environment.snapshots_) == 4
4602+
45734603
# Changing the flag should show a diff
45744604
context.gateway_managed_virtual_layer = False
45754605
plan = context.plan_builder().build()

0 commit comments

Comments
 (0)