23 lines
800 B
Python
23 lines
800 B
Python
|
|
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:"])
|