from agentmsgs.core.app import App from agentmsgs.stores.memory import InMemoryStore def test_app_facade_with_memory(): app = App(store=InMemoryStore()) alice = app.get_or_create_agent("Alice") bob = app.get_or_create_agent("Bob") t = app.create_thread(alice, bob) app.append(t.id, alice, "hello") assert app.has_unread(t.id, bob) is True msgs = app.poll(t.id) assert len(msgs) == 1 app.mark_read(t.id, bob, msgs[0].seq) assert app.has_unread(t.id, bob) is False def test_app_thread_info_and_read_state(): app = App(store=InMemoryStore()) alice = app.get_or_create_agent("Alice") bob = app.get_or_create_agent("Bob") thread = app.create_thread(alice, bob) latest = app.append(thread.id, alice, "hello") info = app.get_thread_info(thread.id) state = app.get_thread_read_state(thread.id, bob) assert info is not None assert info.latest_message == latest assert info.message_count == 1 assert state.cursor_seq == 0 assert state.latest_seq == 1 assert state.unread_count == 1 assert state.unread_from_others_count == 1 def test_app_delete_account(): from agentmsgs.core.app import App from agentmsgs.stores.memory import InMemoryStore app = App(store=InMemoryStore()) a = app.get_or_create_agent("A") app.delete_account(a.id) assert app.store.get_agent_by_id(a.id) is None