test(mcp): Fix two failing integration tests and linting errors
1. Fix `test_default_beads_path_auto_detection`
- Changed beads_path to use `Field(default_factory=_default_beads_path)` so the default is evaluated at instance
creation time, not class definition time
- Updated test to mock both `shutil.which` and `os.access`
2. Fix `test_init_creates_beads_directory`
- Fixed test to pass `working_dir=temp_dir` to `BdClient` instead of using `os.chdir()`
- The `_get_working_dir()` method checks `PWD` env var first, which isn't updated by `os.chdir()`
3. Fix minor linting errors reported by `ruff` tool
4. Update `beads` version to `0.9.6` in `uv.lock` file
MCP Server test coverage is now excellent, at 92% overall maintaining our high-standards of production level quality.
```
Name Stmts Miss Cover
------------------------------------------------
src/beads_mcp/__init__.py 1 0 100%
src/beads_mcp/__main__.py 3 3 0%
src/beads_mcp/bd_client.py 214 14 93%
src/beads_mcp/config.py 51 2 96%
src/beads_mcp/models.py 92 1 99%
src/beads_mcp/server.py 58 16 72%
src/beads_mcp/tools.py 59 0 100%
------------------------------------------------
TOTAL 478 36 92%
```
This commit is contained in:
@@ -68,13 +68,9 @@ async def beads_ready_work(
|
||||
|
||||
|
||||
async def beads_list_issues(
|
||||
status: Annotated[
|
||||
IssueStatus | None, "Filter by status (open, in_progress, blocked, closed)"
|
||||
] = None,
|
||||
status: Annotated[IssueStatus | None, "Filter by status (open, in_progress, blocked, closed)"] = None,
|
||||
priority: Annotated[int | None, "Filter by priority (0-4, 0=highest)"] = None,
|
||||
issue_type: Annotated[
|
||||
IssueType | None, "Filter by type (bug, feature, task, epic, chore)"
|
||||
] = None,
|
||||
issue_type: Annotated[IssueType | None, "Filter by type (bug, feature, task, epic, chore)"] = None,
|
||||
assignee: Annotated[str | None, "Filter by assignee"] = None,
|
||||
limit: Annotated[int, "Maximum number of issues to return (1-1000)"] = 50,
|
||||
) -> list[Issue]:
|
||||
@@ -110,9 +106,7 @@ async def beads_create_issue(
|
||||
acceptance: Annotated[str | None, "Acceptance criteria"] = None,
|
||||
external_ref: Annotated[str | None, "External reference (e.g., gh-9, jira-ABC)"] = None,
|
||||
priority: Annotated[int, "Priority (0-4, 0=highest)"] = 2,
|
||||
issue_type: Annotated[
|
||||
IssueType, "Type: bug, feature, task, epic, or chore"
|
||||
] = DEFAULT_ISSUE_TYPE,
|
||||
issue_type: Annotated[IssueType, "Type: bug, feature, task, epic, or chore"] = DEFAULT_ISSUE_TYPE,
|
||||
assignee: Annotated[str | None, "Assignee username"] = None,
|
||||
labels: Annotated[list[str] | None, "List of labels"] = None,
|
||||
id: Annotated[str | None, "Explicit issue ID (e.g., bd-42)"] = None,
|
||||
@@ -243,9 +237,7 @@ async def beads_blocked() -> list[BlockedIssue]:
|
||||
|
||||
|
||||
async def beads_init(
|
||||
prefix: Annotated[
|
||||
str | None, "Issue prefix (e.g., 'myproject' for myproject-1, myproject-2)"
|
||||
] = None,
|
||||
prefix: Annotated[str | None, "Issue prefix (e.g., 'myproject' for myproject-1, myproject-2)"] = None,
|
||||
) -> str:
|
||||
"""Initialize bd in current directory.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user