auto-sync: 2026-06-05 18:41:47
This commit is contained in:
@@ -5,8 +5,7 @@
|
||||
- T2: token 估算 + 预算告警
|
||||
- T3: 缺失组件降级
|
||||
- T4: build_for_task 便捷方法
|
||||
- T5: _read_skill fallback (skipped — removed in API refactor)
|
||||
- T6: ROLE_SKILL_MAP 覆盖 (skipped — removed in API refactor)
|
||||
|
||||
"""
|
||||
|
||||
import pytest
|
||||
@@ -141,47 +140,4 @@ class TestBuildForTask:
|
||||
assert "T" in b
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# T5: _read_skill fallback (removed in API refactor)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
@pytest.mark.skip(reason="_read_skill removed in API refactor")
|
||||
class TestReadSkillFallback:
|
||||
def test_missing_skill_file_returns_empty(self, builder):
|
||||
"""Skill 文件不存在时返回空字符串,不抛异常"""
|
||||
result = builder._read_skill("nonexistent-skill-xyz")
|
||||
assert result == ""
|
||||
|
||||
def test_existing_skill_file_read(self, builder):
|
||||
"""能读取实际存在的 Skill 文件"""
|
||||
result = builder._read_skill("blackboard-executor")
|
||||
assert "执行" in result or "executor" in result.lower()
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# T6: ROLE_SKILL_MAP 覆盖 (removed in API refactor)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
@pytest.mark.skip(reason="ROLE_SKILL_MAP removed in API refactor")
|
||||
class TestRoleSkillMap:
|
||||
def test_all_roles_mapped(self):
|
||||
assert set(BootstrapBuilder.ROLE_SKILL_MAP.keys()) == {
|
||||
"executor", "reviewer", "reviewer-simayi",
|
||||
"reviewer-pangtong", "planner", "claim",
|
||||
}
|
||||
|
||||
def test_unknown_role_warns(self, builder):
|
||||
"""未映射的 role 输出 warning"""
|
||||
import logging
|
||||
with patch("src.daemon.bootstrap.logger") as mock_logger:
|
||||
builder.build(task={"title": "T"}, role="unknown_role")
|
||||
mock_logger.warning.assert_called_with(
|
||||
"No skill mapping for role: %s", "unknown_role"
|
||||
)
|
||||
|
||||
def test_discussion_role_no_warning(self, builder, caplog):
|
||||
"""discussion 角色不应触发 warning"""
|
||||
import logging
|
||||
with caplog.at_level(logging.WARNING, logger="moziplus-v2.bootstrap"):
|
||||
builder.build(task={"title": "T"}, role="discussion")
|
||||
assert "No skill mapping" not in caplog.text
|
||||
|
||||
Reference in New Issue
Block a user