41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
from typing import Protocol
|
|
|
|
from agentmsgs.core.store import (
|
|
AgentStore,
|
|
CursorStore,
|
|
MessageStore,
|
|
Store,
|
|
ThreadStore,
|
|
)
|
|
|
|
|
|
def test_store_composes_domain_protocols():
|
|
assert issubclass(Store, Protocol)
|
|
assert AgentStore in Store.__mro__
|
|
assert ThreadStore in Store.__mro__
|
|
assert MessageStore in Store.__mro__
|
|
assert CursorStore in Store.__mro__
|
|
|
|
for protocol, methods in {
|
|
AgentStore: [
|
|
"get_or_create_agent",
|
|
"get_agent_by_name",
|
|
"get_agent_by_id",
|
|
"create_agent",
|
|
"delete_agent",
|
|
"list_agents",
|
|
],
|
|
ThreadStore: [
|
|
"create_thread",
|
|
"get_thread",
|
|
"find_threads",
|
|
"add_participant",
|
|
"remove_participant",
|
|
"delete_thread",
|
|
],
|
|
MessageStore: ["append_message", "list_messages"],
|
|
CursorStore: ["get_cursor", "set_cursor"],
|
|
}.items():
|
|
for method in methods:
|
|
assert hasattr(protocol, method), f"missing {method} from {protocol.__name__}"
|