mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-10-23 17:05:28 +08:00
Merge pull request #2672 from langbot-app/test/quality-runtime-oracles-20261017
test(runtime): assert filter and message delivery semantics
This commit is contained in:
@@ -560,19 +560,18 @@ class TestMessageAggregatorAddMessage:
|
||||
|
||||
agg = aggregator.MessageAggregator(app)
|
||||
|
||||
chain = text_chain('hello')
|
||||
event = friend_message_event(chain)
|
||||
adapter = mock_adapter()
|
||||
|
||||
# Add messages up to MAX_BUFFER_MESSAGES
|
||||
for i in range(aggregator.MAX_BUFFER_MESSAGES):
|
||||
chain = text_chain(f'message {i}')
|
||||
await agg.add_message(
|
||||
execution_context=execution_context(pipeline_uuid='test-pipeline'),
|
||||
bot_uuid='test-bot',
|
||||
launcher_type=provider_session.LauncherTypes.PERSON,
|
||||
launcher_id=12345,
|
||||
sender_id=12345,
|
||||
message_event=event,
|
||||
message_event=friend_message_event(chain),
|
||||
message_chain=chain,
|
||||
adapter=adapter,
|
||||
pipeline_uuid='test-pipeline',
|
||||
@@ -588,6 +587,14 @@ class TestMessageAggregatorAddMessage:
|
||||
'test-pipeline',
|
||||
)
|
||||
assert session_id not in agg.buffers or len(agg.buffers[session_id].messages) == 0
|
||||
app.query_pool.add_query.assert_awaited_once()
|
||||
forwarded = app.query_pool.add_query.call_args.kwargs
|
||||
assert str(forwarded['message_chain']) == '\n'.join(
|
||||
f'message {i}' for i in range(aggregator.MAX_BUFFER_MESSAGES)
|
||||
)
|
||||
assert forwarded['execution_context'] == context
|
||||
assert forwarded['bot_uuid'] == 'test-bot'
|
||||
assert forwarded['pipeline_uuid'] == 'test-pipeline'
|
||||
|
||||
|
||||
class TestMessageAggregatorMerge:
|
||||
|
||||
@@ -189,7 +189,7 @@ class TestChatMessageHandlerReal:
|
||||
async def test_user_message_alter_string(self, fake_app, mock_event_ctx, set_runner):
|
||||
"""user_message_alter as string updates query.user_message."""
|
||||
from tests.factories import text_query
|
||||
from langbot_plugin.api.entities.builtin.provider.message import Message
|
||||
from langbot_plugin.api.entities.builtin.provider.message import Message, ContentElement
|
||||
|
||||
chat = get_chat_handler()
|
||||
|
||||
@@ -200,7 +200,8 @@ class TestChatMessageHandlerReal:
|
||||
query = text_query('original')
|
||||
query.adapter = Mock()
|
||||
query.adapter.is_stream_output_supported = AsyncMock(return_value=False)
|
||||
query.user_message = Message(role='user', content=[])
|
||||
query.user_message = Message(role='user', content=[ContentElement.from_text('original')])
|
||||
received_contents = []
|
||||
|
||||
class QuickRunner:
|
||||
name = 'local-agent'
|
||||
@@ -210,6 +211,7 @@ class TestChatMessageHandlerReal:
|
||||
self.config = config
|
||||
|
||||
async def run(self, query):
|
||||
received_contents.append(query.user_message.content)
|
||||
yield Message(role='assistant', content='ok')
|
||||
|
||||
set_runner(QuickRunner)
|
||||
@@ -220,7 +222,9 @@ class TestChatMessageHandlerReal:
|
||||
async for result in handler.handle(query):
|
||||
results.append(result)
|
||||
|
||||
assert query.user_message.content is not None
|
||||
expected_content = [ContentElement.from_text('altered text')]
|
||||
assert query.user_message.content == expected_content
|
||||
assert received_contents == [expected_content]
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_adapter_without_stream_method_defaults_non_stream(self, fake_app, mock_event_ctx, set_runner):
|
||||
|
||||
Reference in New Issue
Block a user