Test Protocol
Tests are the immune system — they reject bugs, not document them.
| Code | Test | Interpretation | |------|------|----------------| | Working | Green | Good | | Buggy | Red | Good (bug exposed) | | Working | Red | Wrong expectations | | Buggy | Green | DANGEROUS | | Unknown | Red | STOP — use Analysis Framework below |
ANTI-PATTERN: The most dangerous instinct is to "fix" failing tests by accepting whatever source currently does.
Ask for context:
Default heuristic: Tests encode intent; assume the test is correct until evidence suggests otherwise. Source drifts; tests usually don't drift without reason.
Analysis Framework:
FORBIDDEN without approval:
Allowed: Fresh repro tests capturing current failure (existing tests untouched).
Quality Standards:
pytest.raises(ValueError, match="...")Assertion Strength: Would this assertion pass for a broken implementation? If yes (tautology, type-only, existence-only, shape-only), strengthen it.
Mocking Discipline: Test the code, not the scaffolding. Heavy mock setup suggests you're testing assumptions about dependencies, not behavior. Mock external boundaries (APIs, DBs, filesystems), not internal logic.
Paired Coverage: For each positive test, consider a negative counterpart. Happy-path-only is a red flag for complex source.
Coverage Relevance: "Tests pass" ≠ "tests exercise changed code". For non-trivial changes, verify tests cover modified paths.
Signal Hierarchy: Integration failures > Unit failures for architectural changes. Green units with red integration = units work but don't compose.
Structure: Prefer GIVEN / WHEN / THEN blocks for readability. Omit a section when empty; the structure clarifies intent, not ceremony.
Template Principle: Identify one high-quality test file as reference. Match its patterns.
Flaky Tests: Flakiness is a bug, not noise. When encountered: isolate, report, do not retry-until-green. Flakiness masks real failures.
Edit PDFs with natural-language instructions using the nano-pdf CLI.
Control Sonos speakers (discover/status/play/volume/group).
Terminal Spotify playback/search via spogo (preferred) or spotify_player.
Capture frames or clips from RTSP/ONVIF cameras.
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
Category:tools