Files
qwenpaw/tests/unit/app/workspace/test_bootstrap_factory.py
agent-radar 1a3a4ccde1
Creator App Tests / PR Spam Gate (push) Skipped
Frontend Tests / PR Spam Gate (push) Skipped
NPM Format (website & console) / PR Spam Gate (push) Skipped
Pre-commit Checks / PR Spam Gate (push) Skipped
QwenPaw Creator Plugin Release / check-version (push) Canceled after 0s
QwenPaw Creator Plugin Release / upload-oss (push) Canceled after 0s
Tests / PR Spam Gate (push) Skipped
CodeQL / CodeQL (python) (push) Canceled after 0s
CodeQL / CodeQL (typescript) (push) Canceled after 0s
Creator App Tests / Creator Backend Tests (push) Canceled after 0s
Creator App Tests / Creator UI Build & Tests (push) Canceled after 0s
E2E Smoke Tests / Playwright UI Smoke (push) Canceled after 0s
Frontend Tests / Detect console changes (push) Canceled after 0s
NPM Format (website & console) / website format check (push) Canceled after 0s
NPM Format (website & console) / console format check (push) Canceled after 0s
Pre-commit Checks / Pre-commit (push) Canceled after 0s
QwenPaw Data Plugin Release / check-version (push) Canceled after 0s
Tests / Detect code changes (push) Canceled after 0s
Frontend Tests / Vitest Unit Tests (push) Canceled after 0s
Frontend Tests / Frontend Summary (push) Canceled after 0s
QwenPaw Data Plugin Release / upload-oss (push) Canceled after 0s
Tests / Maintainer Approval (push) Canceled after 0s
Tests / Unit Tests - py3.11 - macos-latest (push) Canceled after 0s
Tests / Unit Tests - py3.11 - ubuntu-latest (push) Canceled after 0s
Tests / Unit Tests - py3.13 - ubuntu-latest (push) Canceled after 0s
Tests / Unit Tests - py3.11 - windows-latest (push) Canceled after 0s
Tests / Contract Tests - py3.11 - macos-latest (push) Canceled after 0s
Tests / Contract Tests - py3.11 - ubuntu-latest (push) Canceled after 0s
Tests / Contract Tests - py3.13 - ubuntu-latest (push) Canceled after 0s
Tests / Contract Tests - py3.11 - windows-latest (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - macos-latest - p0 (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - macos-latest - p1 (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - macos-latest - p2 (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - ubuntu-latest - fallback (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - ubuntu-latest - p0 (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - ubuntu-latest - p1 (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - ubuntu-latest - p2 (push) Canceled after 0s
Tests / Integrated Tests - py3.13 - ubuntu-latest - p0 (push) Canceled after 0s
Tests / Integrated Tests - py3.13 - ubuntu-latest - p1 (push) Canceled after 0s
Tests / Integrated Tests - py3.13 - ubuntu-latest - p2 (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - windows-latest - p0 (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - windows-latest - p1 (push) Canceled after 0s
Tests / Integrated Tests - py3.11 - windows-latest - p2 (push) Canceled after 0s
Tests / Coverage Report (push) Canceled after 0s
Tests / Test Summary (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:01:50 +08:00

62 lines
2.3 KiB
Python

# -*- coding: utf-8 -*-
"""Tests for WorkspaceBootstrapFactory."""
from __future__ import annotations
from qwenpaw.app.workspace.bootstrap_factory import WorkspaceBootstrapFactory
class TestWorkspaceBootstrapFactory:
"""Verify shared bootstrap factory produces correct kwargs."""
def test_build_bootstrap_kwargs_returns_dict(self) -> None:
kwargs = WorkspaceBootstrapFactory.build_bootstrap_kwargs(None)
assert isinstance(kwargs, dict)
def test_includes_builtin_hook_clses(self) -> None:
from qwenpaw.checkpoints.hooks import (
CheckpointAutoSnapshotHook,
CheckpointQueryGateHook,
)
kwargs = WorkspaceBootstrapFactory.build_bootstrap_kwargs(None)
hook_clses = kwargs.get("builtin_hook_clses", [])
assert len(hook_clses) > 0, "Expected at least some hook classes"
assert CheckpointQueryGateHook in hook_clses
assert CheckpointAutoSnapshotHook in hook_clses
def test_includes_builtin_tool_funcs(self) -> None:
kwargs = WorkspaceBootstrapFactory.build_bootstrap_kwargs(None)
# builtin_tool_funcs may or may not be present depending on environment
# but the key should exist if tools are available
if "builtin_tool_funcs" in kwargs:
assert isinstance(kwargs["builtin_tool_funcs"], (list, tuple))
def test_extra_command_specs_merged(self) -> None:
class _FakeSpec:
name = "fake"
extra = [_FakeSpec()]
kwargs = WorkspaceBootstrapFactory.build_bootstrap_kwargs(
None,
extra_command_specs=extra,
)
specs = kwargs.get("builtin_command_specs", [])
assert any(getattr(s, "name", None) == "fake" for s in specs)
def test_extra_hook_clses_merged(self) -> None:
class _FakeHook:
pass
kwargs = WorkspaceBootstrapFactory.build_bootstrap_kwargs(
None,
extra_hook_clses=[_FakeHook],
)
hook_clses = kwargs.get("builtin_hook_clses", [])
assert _FakeHook in hook_clses
def test_modes_included_when_available(self) -> None:
kwargs = WorkspaceBootstrapFactory.build_bootstrap_kwargs(None)
mode_clses = kwargs.get("builtin_mode_clses", [])
# Modes should be present in a normal environment
assert len(mode_clses) >= 0 # May be empty if modes unavailable