Skip to content

Commit 0a7495e

Browse files
committed
Cover fail-closed schema installation gate
1 parent b9241b0 commit 0a7495e

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

‎tests/test_inplace_transform.py‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,3 +508,23 @@ def test_capability_declares_dolt_owned_versioning() -> None:
508508
assert declaration["creates_persistent_data_copy"] is False
509509
assert declaration["openstatspec_rollback_or_version_history"] is False
510510
assert declaration["performs_dolt_commit"] is False
511+
512+
def test_schema_install_fails_before_engine_or_ddl_when_profile_is_rejected(
513+
monkeypatch,
514+
) -> None:
515+
def reject_profile(_database_url):
516+
raise openstatspec.UnsupportedOperationError("Dolt declaration mismatch")
517+
518+
def unexpected_engine(_database_url):
519+
raise AssertionError("engine creation would permit DDL")
520+
521+
monkeypatch.setattr(inplace_transform, "effective_profile", reject_profile)
522+
monkeypatch.setattr(inplace_transform, "create_engine", unexpected_engine)
523+
524+
with pytest.raises(
525+
openstatspec.UnsupportedOperationError,
526+
match="Dolt declaration mismatch",
527+
):
528+
inplace_transform.install_in_place_transformation_schema(
529+
database_url="mysql+pymysql://user@host/database",
530+
)

0 commit comments

Comments
 (0)