Skip to content

test: build SDK quality test suite#65

Merged
huanghuoguoguo merged 2 commits into
mainfrom
test-build
May 17, 2026
Merged

test: build SDK quality test suite#65
huanghuoguoguo merged 2 commits into
mainfrom
test-build

Conversation

@huanghuoguoguo
Copy link
Copy Markdown
Collaborator

@huanghuoguoguo huanghuoguoguo commented May 16, 2026

Summary

Builds the SDK quality test suite and resolves the source issues that were recorded by that suite.

  • Adds pytest/coverage configuration and CI test workflow with a 75% coverage gate.
  • Adds unit and protocol-style tests across API entities, proxies, CLI commands, runtime IO, handlers, plugin containers, plugin manager behavior, discovery, and import utilities.
  • Fixes the recorded SDK blockers found by the test-build suite.
  • Removes the strict xfail markers for those blockers; the recorded issue tests now run normally and pass.

Fixed Issues

Validation

SDK Test Suite

uv run pytest
269 passed, 10 warnings

The previous blockers are no longer skipped or xfailed. rg "xfail|skip\\(" tests src returns no matches in this branch.

LangBot Master Smoke And E2E

Validated the SDK against a clean LangBot master worktree:

  • LangBot master worktree: 767137a
  • SDK under test: 9723b59
  • Installed SDK with uv pip install -e /home/glwuy/langbot-app/langbot-plugin-sdk-test-build.
  • Confirmed langbot_plugin.__file__ resolves to the local SDK source tree, not the locked/published package.

LangBot test commands:

uv run --no-sync pytest tests/unit_tests/plugin tests/unit_tests/provider/test_tool_manager.py tests/unit_tests/utils/test_pkgmgr.py tests/unit_tests/utils/test_importutil.py
129 passed, 9 warnings

uv run --no-sync pytest tests/integration/api/test_smoke.py tests/integration/api/test_pipelines.py
22 passed, 9 warnings

Browser e2e smoke:

  • Started LangBot backend, plugin runtime, and WebUI from the master worktree with the local SDK installed.
  • Built the local fixture plugin qa/plugin-smoke with the same SDK under test.
  • Installed the plugin through WebUI Plugins -> Upload Local.
  • Verified the plugin install task completed successfully.
  • Verified plugin list/detail showed QA Plugin Smoke, Tool 1, and Page 1.
  • Opened the plugin Smoke Page iframe and verified the sentinel text qa-plugin-smoke-page.
  • Confirmed API diagnostics:
    • GET /api/v1/plugins includes initialized qa/plugin-smoke.
    • GET /api/v1/tools includes qa_echo.
    • POST /api/v1/plugins/qa/plugin-smoke/page-api for /ping returns qa-plugin-smoke-page.

Note: LangBot validation uses uv run --no-sync after installing the editable local SDK. Plain uv run may sync from uv.lock and replace the local SDK with the locked package, which would invalidate the test.

@huanghuoguoguo huanghuoguoguo requested a review from TyperBody May 16, 2026 11:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment