docs: Update Phase 0 with specific test fix requirements

Per ADR-012, Phase 0 now specifies:
- 5 tests to REMOVE (broken multiprocessing)
- 4 tests to FIX (brittle assertions)
- 1 test to RENAME (misleading name)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-16 20:45:41 -07:00
parent 9dcc5c5710
commit 0acefa4670
8 changed files with 325 additions and 72 deletions

View File

@@ -22,27 +22,42 @@ v1.5.0 is a quality-focused release that addresses failing tests, increases test
**Priority**: Must complete first - unblocks all other phases
#### Scope
Fix the 19 failing tests identified in the current test suite:
Address flaky and broken tests per ADR-012 (Flaky Test Removal):
| Category | Count | Tests |
|----------|-------|-------|
| Migration Performance | 2 | `test_single_worker_performance`, `test_concurrent_workers_performance` |
| Feed Route (Streaming) | 1 | `test_feed_route_streaming` |
| Feed Endpoints | 3 | `test_feed_rss_endpoint`, `test_feed_json_endpoint`, `test_feed_xml_legacy_endpoint` |
| Content Negotiation | 6 | `test_accept_rss`, `test_accept_json_feed`, `test_accept_json_generic`, `test_accept_wildcard`, `test_no_accept_header`, `test_quality_factor_json_wins` |
| Backward Compatibility | 1 | `test_feed_xml_contains_rss` |
| Search Security | 1 | `test_search_escapes_html_in_note_content` |
**REMOVE (5 tests)** - Architecturally broken multiprocessing tests:
| Test | Reason |
|------|--------|
| `test_concurrent_workers_barrier_sync` | Cannot pickle Barrier objects |
| `test_sequential_worker_startup` | Missing Flask app context |
| `test_worker_late_arrival` | Missing Flask app context |
| `test_single_worker_performance` | Cannot pickle local functions |
| `test_concurrent_workers_performance` | Cannot pickle local functions |
**FIX (4 tests)** - Valuable tests needing adjustments:
| Test | Fix Required |
|------|--------------|
| `test_debug_level_for_early_retries` | Configure logger level in test |
| `test_new_connection_per_retry` | Adjust assertion count |
| Feed XML tests | Change `<?xml version="1.0"` to `<?xml version=` (don't assert quote style) |
| `test_feed_json_endpoint` | Don't require charset in Content-Type |
**RENAME (1 test)**:
| Test | New Name |
|------|----------|
| `test_feed_route_streaming` | `test_feed_route_caching` (test is correct, name misleading) |
#### Approach
1. Investigate each failing test category
2. Determine if failure is test issue or code issue
3. Fix appropriately (prefer fixing tests over changing working code)
4. Document any behavioral changes
1. Remove the 5 broken multiprocessing tests (they cannot work due to Python limitations)
2. Fix the brittle feed assertion tests (check semantics, not quote style)
3. Fix the 4 migration tests that have value but need mock/assertion adjustments
4. Rename misleading test
5. Document changes in implementation report
#### Acceptance Criteria
- [ ] All 879 tests pass
- [ ] No test skips added (unless justified)
- [ ] No test timeouts
- [ ] All remaining tests pass consistently (run 3x to verify no flakiness)
- [ ] 5 broken tests removed with justification in ADR-012
- [ ] No new test skips added
- [ ] Test count reduced from 879 to 874
#### Dependencies
None - this is the first phase