Files
clice/tests/integration/utils/cache.py
ykiko 8b3e3a9595 refactor(tests): reorganize integration tests into domain-based subdirectories (#409)
## 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>
2026-04-09 02:40:10 +08:00

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