fix(test): make test-quick reliable as developer gate

Fixes for D-001验收问题:
1. test-quick.sh: use set -euo pipefail, uv run ruff, no tail pipe
2. Remove unused imports in factories (app.py, platform.py, provider.py)
3. Fix unused variable in smoke test
4. Add noqa: E402 to test_n8nsvapi.py lazy imports
5. Update smoke test docs: "minimal fake flow" not full pipeline

Now test-quick is a reliable gate: lint failures exit 1, test failures propagate.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
huanghuoguoguo
2026-05-08 14:52:21 +08:00
parent 25bf3ea0b3
commit 66a0a7c9c8
6 changed files with 30 additions and 28 deletions
-2
View File
@@ -8,8 +8,6 @@ from __future__ import annotations
from unittest.mock import AsyncMock, Mock
import langbot_plugin.api.entities.builtin.provider.session as provider_session
class FakeApp:
"""Mock Application object providing all basic dependencies needed by stages."""
-1
View File
@@ -13,7 +13,6 @@ import typing
import langbot_plugin.api.entities.builtin.platform.message as platform_message
import langbot_plugin.api.entities.builtin.platform.events as platform_events
import langbot_plugin.api.entities.builtin.platform.entities as platform_entities
import langbot_plugin.api.entities.builtin.provider.session as provider_session
class FakePlatform:
+1 -1
View File
@@ -6,7 +6,7 @@ Provides a deterministic fake provider that simulates LLM responses without real
from __future__ import annotations
from unittest.mock import AsyncMock, Mock
from unittest.mock import Mock
import typing
import langbot_plugin.api.entities.builtin.provider.message as provider_message
+17 -11
View File
@@ -1,8 +1,10 @@
"""
Smoke tests for LangBot core message flow.
Minimal fake flow smoke tests for LangBot.
These tests verify the basic message processing flow works correctly
using fake providers and platforms.
These tests verify basic component interactions using fake providers and platforms.
Not a full pipeline integration test - tests individual factory components.
For full pipeline tests, see tests/integration/ (planned).
"""
from __future__ import annotations
@@ -272,21 +274,25 @@ class TestFakeMessageFlow:
class TestMessageFlowIntegration:
"""Integration smoke tests for full message flow."""
"""Minimal fake flow integration tests.
These tests verify component interactions but do NOT run full LangBot pipeline.
For real pipeline tests, integration tests are needed (planned).
"""
@pytest.mark.asyncio
async def test_minimal_message_flow(self):
"""Smoke test: message enters, fake provider responds, platform captures outbound.
"""Minimal fake flow test: fake query -> fake provider -> fake platform.
This test verifies:
1. Fake app is created
2. Fake text message enters
3. Fake provider returns LANGBOT_FAKE_PONG
4. Fake platform captures outbound response
5. No unexpected exception
1. Fake text query is created
2. Fake provider returns LANGBOT_FAKE_PONG
3. Fake platform captures outbound response
4. No unexpected exception
Note: This does NOT run actual LangBot pipeline stages.
"""
# Setup
app = FakeApp()
platform = FakePlatform(bot_account_id="test-bot")
provider = fake_provider_pong()
model = fake_model(provider=provider)
+3 -3
View File
@@ -23,9 +23,9 @@ sys.modules.setdefault('langbot.pkg.provider.runner', _mock_runner)
sys.modules.setdefault('langbot.pkg.core.app', MagicMock())
sys.modules.setdefault('langbot.pkg.utils.httpclient', MagicMock())
import pytest
import langbot_plugin.api.entities.builtin.provider.message as provider_message
from langbot.pkg.provider.runners.n8nsvapi import N8nServiceAPIRunner
import pytest # noqa: E402
import langbot_plugin.api.entities.builtin.provider.message as provider_message # noqa: E402
from langbot.pkg.provider.runners.n8nsvapi import N8nServiceAPIRunner # noqa: E402
# ---------------------------------------------------------------------------