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:
@@ -20,8 +20,10 @@ class TestConfig:
|
||||
|
||||
# Mock shutil.which to return a test path
|
||||
with patch("shutil.which", return_value="/usr/local/bin/bd"):
|
||||
config = Config()
|
||||
assert config.beads_path == "/usr/local/bin/bd"
|
||||
# Mock os.access to say the file is executable
|
||||
with patch("os.access", return_value=True):
|
||||
config = Config()
|
||||
assert config.beads_path == "/usr/local/bin/bd"
|
||||
|
||||
def test_beads_path_from_env(self, tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
|
||||
"""Test that BEADS_PATH environment variable is respected."""
|
||||
|
||||
Reference in New Issue
Block a user