SIGN IN SIGN UP

refactor: sensor tests — DI fixtures, public API only, no internal coupling

Rewrite all platform sensor tests to follow the app's DI flow:
  discover() → read_all() → map_defaults()

- MockIO dataclass + fixtures mock at I/O boundaries only (psutil,
  pynvml, subprocess, sysfs) — never patch internal method names
- Base conftest tests shared behavior once (23 tests): psutil sensors,
  nvidia discovery/polling, computed I/O rates, polling lifecycle,
  read_all bootstrap, map_defaults caching, _find_first helper
- Platform tests only cover platform-specific behavior:
  Linux: hwmon, DRM, RAPL, extended nvidia, GPU ranking
  macOS: powermetrics, APFS disk, Apple Silicon sensors
  Windows: LHM COM, WMI, CPU temp fallback
  BSD: sysctl temps

Internal method renames no longer break tests.
2341 → 1514 lines (35% reduction), same behavioral coverage.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
L
Lexonight1 committed
18a8ffcccf7e09e2657dbd61b9908b02ef246a64
Parent: f4b47b3