fix prototype backend review issues
This commit is contained in:
parent
94bdb44b93
commit
37643a9695
9 changed files with 182 additions and 46 deletions
|
|
@ -1,6 +1,7 @@
|
|||
import pytest
|
||||
|
||||
from core.protocol import SettingsAction
|
||||
from sdk.agent_session import build_thread_key
|
||||
from sdk.interface import MessageChunk, MessageResponse, UserSettings
|
||||
from sdk.prototype_state import PrototypeStateStore
|
||||
from sdk.real import RealPlatformClient
|
||||
|
|
@ -31,13 +32,12 @@ async def test_real_platform_client_get_or_create_user_uses_local_state():
|
|||
client = RealPlatformClient(
|
||||
agent_sessions=FakeAgentSessionClient(),
|
||||
prototype_state=PrototypeStateStore(),
|
||||
platform="telegram",
|
||||
)
|
||||
|
||||
first = await client.get_or_create_user("u1", "telegram", "Alice")
|
||||
second = await client.get_or_create_user("u1", "telegram")
|
||||
first = await client.get_or_create_user("u1", "matrix", "Alice")
|
||||
second = await client.get_or_create_user("u1", "matrix")
|
||||
|
||||
assert first.user_id == "usr-telegram-u1"
|
||||
assert first.user_id == "usr-matrix-u1"
|
||||
assert first.is_new is True
|
||||
assert second.user_id == first.user_id
|
||||
assert second.is_new is False
|
||||
|
|
@ -45,57 +45,55 @@ async def test_real_platform_client_get_or_create_user_uses_local_state():
|
|||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_real_platform_client_send_message_uses_configured_platform():
|
||||
async def test_real_platform_client_send_message_uses_surface_user_thread_identity():
|
||||
agent_sessions = FakeAgentSessionClient()
|
||||
client = RealPlatformClient(
|
||||
agent_sessions=agent_sessions,
|
||||
prototype_state=PrototypeStateStore(),
|
||||
platform="telegram",
|
||||
platform="matrix",
|
||||
)
|
||||
|
||||
result = await client.send_message("usr-telegram-u1", "C1", "hello")
|
||||
thread_key = build_thread_key("matrix", "@alice:example.org", "C1")
|
||||
result = await client.send_message("@alice:example.org", "C1", "hello")
|
||||
|
||||
assert result == MessageResponse(
|
||||
message_id="8:telegram15:usr-telegram-u12:C1",
|
||||
message_id=thread_key,
|
||||
response="echo:hello",
|
||||
tokens_used=3,
|
||||
finished=True,
|
||||
)
|
||||
assert agent_sessions.send_calls == [
|
||||
("8:telegram15:usr-telegram-u12:C1", "hello")
|
||||
]
|
||||
assert agent_sessions.send_calls == [(thread_key, "hello")]
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_real_platform_client_stream_message_uses_configured_platform():
|
||||
async def test_real_platform_client_stream_message_uses_surface_user_thread_identity():
|
||||
agent_sessions = FakeAgentSessionClient()
|
||||
client = RealPlatformClient(
|
||||
agent_sessions=agent_sessions,
|
||||
prototype_state=PrototypeStateStore(),
|
||||
platform="telegram",
|
||||
platform="matrix",
|
||||
)
|
||||
|
||||
thread_key = build_thread_key("matrix", "@alice:example.org", "C1")
|
||||
chunks = []
|
||||
async for chunk in client.stream_message("usr-telegram-u1", "C1", "hello"):
|
||||
async for chunk in client.stream_message("@alice:example.org", "C1", "hello"):
|
||||
chunks.append(chunk)
|
||||
|
||||
assert chunks == [
|
||||
MessageChunk(
|
||||
message_id="8:telegram15:usr-telegram-u12:C1",
|
||||
message_id=thread_key,
|
||||
delta="he",
|
||||
finished=False,
|
||||
tokens_used=0,
|
||||
),
|
||||
MessageChunk(
|
||||
message_id="8:telegram15:usr-telegram-u12:C1",
|
||||
message_id=thread_key,
|
||||
delta="llo",
|
||||
finished=True,
|
||||
tokens_used=3,
|
||||
),
|
||||
]
|
||||
assert agent_sessions.stream_calls == [
|
||||
("8:telegram15:usr-telegram-u12:C1", "hello")
|
||||
]
|
||||
assert agent_sessions.stream_calls == [(thread_key, "hello")]
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue