## Summary - Extract shared test utilities into `tests/integration/utils/` (client, workspace, assertions, wait, cache) - Migrate 12 test files into categorized subdirectories: `lifecycle/`, `compilation/`, `features/`, `modules/`, `extensions/`, `stress/` - Merge `test_include_completion.py` + `test_import_completion.py` → `features/test_completion.py` - Remove stale directory-tree comments and section divider comments ## Test plan - [x] `pytest --collect-only` collects all 113 tests - [x] All test module imports verified - [x] `pixi run format` applied 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Tests** * Reorganized integration suites: added new feature tests (completion, server) and removed older duplicated modules. * Centralized shared test utilities and assertion helpers for diagnostics, workspace operations, waiting/synchronization, and cache inspection. * **Chores / Refactor** * Standardized test client lifecycle and helper usage across suites for more reliable test flows. * Improved server session lifecycle handling for more predictable document/session resets during tests. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
"""Cache inspection helpers for persistent cache tests."""
|
|
|
|
import json
|
|
from pathlib import Path
|
|
|
|
|
|
def list_pch_files(workspace: Path) -> list[Path]:
|
|
"""Return all .pch files in the cache directory, sorted."""
|
|
pch_dir = workspace / ".clice" / "cache" / "pch"
|
|
if not pch_dir.exists():
|
|
return []
|
|
return sorted(pch_dir.glob("*.pch"))
|
|
|
|
|
|
def list_pcm_files(workspace: Path) -> list[Path]:
|
|
"""Return all .pcm files in the cache directory, sorted."""
|
|
pcm_dir = workspace / ".clice" / "cache" / "pcm"
|
|
if not pcm_dir.exists():
|
|
return []
|
|
return sorted(pcm_dir.glob("*.pcm"))
|
|
|
|
|
|
def read_cache_json(workspace: Path) -> dict | None:
|
|
"""Read and parse cache.json, or return None if absent."""
|
|
path = workspace / ".clice" / "cache" / "cache.json"
|
|
if not path.exists():
|
|
return None
|
|
return json.loads(path.read_text())
|
|
|
|
|
|
def list_tmp_files(workspace: Path) -> list[Path]:
|
|
"""Return stale .tmp files in pch and pcm cache directories."""
|
|
tmp_files = []
|
|
for subdir in ("pch", "pcm"):
|
|
d = workspace / ".clice" / "cache" / subdir
|
|
if d.exists():
|
|
tmp_files.extend(d.glob("*.tmp"))
|
|
return tmp_files
|