Align lifecycle persistence with review isolation and runtime health
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a10780-6d41-7952-9718-dfbc1f41236f
This commit is contained in:
parent
b2a4b863a8
commit
f0e9341650
8 changed files with 102 additions and 5 deletions
|
|
@ -184,3 +184,31 @@ def test_foundation_imports_no_ui_or_http_runtime():
|
|||
"assert not {'informed_decision.ui', 'informed_decision.web', "
|
||||
"'informed_decision.runtime'} & sys.modules.keys()"], capture_output=True, text=True)
|
||||
assert result.returncode == 0, result.stderr
|
||||
|
||||
|
||||
def test_unpublished_records_do_not_enter_legacy_review_overview(workspace):
|
||||
repo, memo = workspace
|
||||
legacy = replace(memo, id="legacy-review")
|
||||
repo.store.save_memo(legacy)
|
||||
repo.register(AGENT, memo, key="register")
|
||||
assert [m.id for m in repo.store.memos_for(memo.binding.principal.id)] == [legacy.id]
|
||||
|
||||
|
||||
def test_legacy_import_cannot_bypass_lifecycle_revision_history(workspace):
|
||||
repo, memo = workspace
|
||||
repo.register(AGENT, memo, key="register")
|
||||
with pytest.raises(Conflict, match="lifecycle revision"):
|
||||
repo.store.save_memo(memo.next_version(brief="unattributed edit"))
|
||||
assert repo.retrieve(AGENT.tenant, memo.id).version == 1
|
||||
assert repo.store.lifecycle_counts() == {"records": 1, "events": 1, "pending": 1}
|
||||
|
||||
|
||||
def test_pending_lifecycle_events_close_existing_runtime_readiness_immediately(workspace):
|
||||
from informed_decision.runtime import AuditPump
|
||||
repo, memo = workspace
|
||||
pump = AuditPump(repo.store, None, clock=lambda: 100)
|
||||
pump._last_ok = 100
|
||||
assert pump.ready()
|
||||
repo.register(AGENT, memo, key="register")
|
||||
assert not pump.ready()
|
||||
assert not AuditPump(Store(repo.store.path), None).ready()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue