From b7992e4ea612b5ae6216bdab35d682d1521cd8fd Mon Sep 17 00:00:00 2001 From: Chin Rock Date: Mon, 19 Oct 2026 19:02:21 +0000 Subject: [PATCH] fix(ci): align HTTP attachment test with explicit file export Co-authored-by: multica-agent --- src/langbot/pkg/platform/botmgr.py | 2 -- .../unit_tests/platform/test_http_bot_agent_boundary.py | 9 ++++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/langbot/pkg/platform/botmgr.py b/src/langbot/pkg/platform/botmgr.py index ad30f5e7b..5e41116d8 100644 --- a/src/langbot/pkg/platform/botmgr.py +++ b/src/langbot/pkg/platform/botmgr.py @@ -728,8 +728,6 @@ class RuntimeBot: @classmethod def _build_agent_input(cls, event: platform_events.EBAEvent) -> AgentInput: - from ..agent.runner.query_entry_adapter import QueryEntryAdapter - text = platform_events.event_summary(event) contents: list[dict[str, typing.Any]] = [] diff --git a/tests/unit_tests/platform/test_http_bot_agent_boundary.py b/tests/unit_tests/platform/test_http_bot_agent_boundary.py index a044054d0..7ae206721 100644 --- a/tests/unit_tests/platform/test_http_bot_agent_boundary.py +++ b/tests/unit_tests/platform/test_http_bot_agent_boundary.py @@ -244,8 +244,9 @@ async def test_sync_waits_for_authorized_exported_file_after_final_text(text_api } query = SimpleNamespace(_box_binding=RunBoxBinding('generated-run', 'box', {}, 'generated-run')) box = SimpleNamespace( + _ATTACHMENT_MAX_FILES=10, _ATTACHMENT_MAX_TOTAL_BYTES=1000000, - collect_outbound_attachments=AsyncMock( + collect_selected_files=AsyncMock( return_value=[ { 'type': 'File', @@ -255,7 +256,9 @@ async def test_sync_waits_for_authorized_exported_file_after_final_text(text_api ] ), ) - exported = await RunnerBoxService(box).export_files(query) + paths = ['/workspace/generated-proof.txt'] + exported = await RunnerBoxService(box).export_files(query, paths) + box.collect_selected_files.assert_awaited_once_with(query, paths) file_ids = [item['id'] for item in exported['items']] app = SimpleNamespace( platform_mgr=SimpleNamespace(get_bot_by_uuid=AsyncMock(return_value=SimpleNamespace(adapter=live_adapter))) @@ -292,7 +295,7 @@ async def test_sync_waits_for_authorized_exported_file_after_final_text(text_api assert status == 200 payload = (await response.get_json())['data'] assert payload['reply_to'] == message_id - assert len(payload['message']) == 2 + assert len(payload['message']) == 2, adapter.logger.mock_calls assert payload['message'][0] == {'type': 'Plain', 'text': content.decode()} delivered = payload['message'][1] assert delivered['type'] == 'File'