import json import pytest from approval_engine.cli import main def test_migrate_verify_and_backup_commands(tmp_path, capsys): database = tmp_path / "approval.sqlite" backup = tmp_path / "approval.backup.sqlite" assert main(["migrate", "--db", str(database)]) == 0 migrated = json.loads(capsys.readouterr().out) assert migrated["ok"] is True assert main(["verify", "--db", str(database)]) == 0 assert json.loads(capsys.readouterr().out)["schema_current"] is True assert main(["backup", "--db", str(database), "--output", str(backup)]) == 0 assert json.loads(capsys.readouterr().out)["integrity"] == "ok" def test_production_refuses_memory_store_before_serving(): with pytest.raises(SystemExit): main(["serve", "--production", "--db", ":memory:"])