generated from coulomb/repo-seed
Implement phase-memory foundation
This commit is contained in:
44
tests/test_adapters.py
Normal file
44
tests/test_adapters.py
Normal file
@@ -0,0 +1,44 @@
|
||||
from phase_memory.adapters import (
|
||||
AllowAllPolicyGateway,
|
||||
InMemoryMemoryEventLog,
|
||||
InMemoryMemoryGraphStore,
|
||||
NoopContextPackageCompiler,
|
||||
RecordingAuditSink,
|
||||
)
|
||||
from phase_memory.models import MemoryEdge, MemoryEvent, MemoryNode, ProfileIntent
|
||||
from phase_memory.ports import graph_from_store
|
||||
|
||||
|
||||
def test_in_memory_store_and_event_log_are_deterministic() -> None:
|
||||
store = InMemoryMemoryGraphStore()
|
||||
profile = ProfileIntent(profile_id="profile")
|
||||
node = MemoryNode("node.a", "decision", "Boundary decision")
|
||||
edge = MemoryEdge("edge.a", "governs", "node.a", "node.a")
|
||||
|
||||
store.save_profile(profile)
|
||||
store.save_node(node)
|
||||
store.save_edge(edge)
|
||||
|
||||
assert store.get_profile("profile") == profile
|
||||
assert store.list_nodes() == [node]
|
||||
assert store.list_edges(source="node.a") == [edge]
|
||||
assert graph_from_store(store).nodes == (node,)
|
||||
|
||||
log = InMemoryMemoryEventLog()
|
||||
event = MemoryEvent("event.a", "recorded")
|
||||
assert log.append(event) == event
|
||||
assert log.list_events(kind="recorded") == [event]
|
||||
|
||||
|
||||
def test_local_policy_audit_and_compiler_adapters() -> None:
|
||||
policy = AllowAllPolicyGateway()
|
||||
audit = RecordingAuditSink()
|
||||
compiler = NoopContextPackageCompiler()
|
||||
|
||||
decision = policy.authorize(action="read", resource="memory-node:node.a")
|
||||
receipt = audit.record({"operation": "read", "allowed": decision.allowed})
|
||||
package = compiler.compile_selection({"id": "selection.a", "nodes": ["node.a"], "events": []})
|
||||
|
||||
assert decision.allowed
|
||||
assert receipt["recorded"] is True
|
||||
assert package["package_id"] == "package:selection.a"
|
||||
Reference in New Issue
Block a user