Files
wehub-resource-sync 7a0da7932b
OSV-Scanner (Scheduled) / scan-scheduled (push) Failing after 0s
Create Release / test-gate (push) Has been cancelled
Create Release / release-gate (push) Has been cancelled
Create Release / ci-gate (push) Has been cancelled
Create Release / version-check (push) Has been cancelled
Create Release / e2e-test-gate (push) Has been cancelled
Create Release / responsive-test-gate (push) Has been cancelled
Create Release / compat-test-gate (push) Has been cancelled
Create Release / compose-integration-gate (push) Has been cancelled
Create Release / vulture-gate (push) Has been cancelled
Create Release / build (push) Has been cancelled
Create Release / provenance (push) Has been cancelled
Create Release / prerelease-docker (push) Has been cancelled
Create Release / publish-docker (push) Has been cancelled
Create Release / create-release (push) Has been cancelled
Create Release / cleanup-changelog (push) Has been cancelled
Create Release / trigger-pypi (push) Has been cancelled
Create Release / monitor-pypi (push) Has been cancelled
Create Release / Clean up orphan prerelease tags and signatures (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [research-form] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [research-metrics] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [research-workflow] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [settings-core] (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [history-news] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [library] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [link-analytics] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [chat-core] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [chat-lifecycle] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [error-benchmark] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [settings-pages] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) (push) Has been cancelled
Docker Tests (Consolidated) / Accessibility Tests (push) Has been cancelled
Docker Tests (Consolidated) / LLM Unit Tests (push) Has been cancelled
Docker Tests (Consolidated) / LLM Example Tests (push) Has been cancelled
Docker Tests (Consolidated) / Production Image Smoke Test (push) Has been cancelled
Docker Tests (Consolidated) / Infrastructure Tests (push) Has been cancelled
OSSF Scorecard / OSSF Security Scorecard Analysis (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [mobile] (push) Has been cancelled
Backwards Compatibility / Verify Encryption Constants (push) Has been cancelled
Backwards Compatibility / PyPI Version Compatibility (push) Has been cancelled
Backwards Compatibility / Database Migration Tests (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Docker Tests (Consolidated) / detect-changes (push) Has been cancelled
Docker Tests (Consolidated) / Build Test Image (push) Has been cancelled
Docker Tests (Consolidated) / All Pytest Tests + Coverage (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [accessibility] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [api-crud] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [auth-login] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [auth-pages] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [auth-register] (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:08:55 +08:00

186 lines
8.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Test review (PUNCHLIST) — completion report
This document records the outcome of the systematic test-suite review
tracked in `/home/coder1/.claude/plans/test-review/PUNCHLIST.md` (the
canonical punchlist lives outside the repo).
Of **1,023 unique punchlist entries**, every entry has been either
**addressed by a PR** or **categorized as no-action-needed** with
documented rationale. This file enumerates each category so a future
audit can verify completeness without rebuilding the audit from
scratch.
## Category A — Addressed by a PR (734 entries)
Each entry in this category was actioned by exactly one PR. The PRs
fall into the buckets below.
### A1. Mass shadow-file cleanup (~3,100 tests removed)
| PR | Files removed | Tests removed |
|---|---|---|
| #4241 | 52 (import-existence tautologies — surgical per-test removal) | 140 |
| #4242 | 45 `tests/news/test_*_behavior.py` (0 SUT imports) | 2,428 |
| #4243 | 26 non-news shadow files (0 SUT imports) | 683 |
### A2. Tier 1 placeholders + OVERMOCKED strengthening
| PR | Description |
|---|---|
| #4244 | Script-style `test_custom_context.py` deleted |
| #4245 | **Production bug fix** in `SQLCardStorage.create()` + 2 OVERMOCKED tests strengthened |
| #4246 | Rating-storage OVERMOCKED test strengthened |
| #4247 | 7 no-assertion placeholders across 7 files |
| #4273 | 2 broad-status-list tautologies in `test_context_overflow_api.py` — exposed and fixed a wrong test URL |
| #4274 | 5 `ui_tests/test_*_uuid*` diagnostic scripts (REAL_NETWORK, NO_ASSERT) |
| #4275 | `test_google_pse.py` H7_MOCK_IDENTITY tautology |
| #4276 | Mock-roundtrip test in `test_llm_provider_integration.py` |
| #4290 | 4 final `assert True` placeholders found by exhaustive AST scan |
### A3. Tier 2 tautology + NO_ASSERT cleanup
| PR | Description |
|---|---|
| #4248 | 3 tautology asserts in `test_domain_classifier.py` |
| #4249 | 4 tautology asserts across bytes_loader, json_utils, headline_generator, content_fetcher |
| #4250 | 2 no-assert placeholders in `test_llm_config.py` |
| #4251 | 2 explicit DELETE NO_FAILURE_PATH theme tests |
| #4252 | 17 more NO_FAILURE_PATH theme tests |
| #4277 | 10 hasattr-only tests in `test_research_metrics_extended.py` |
| #4278 | 4 weak tests in `test_token_counter_extended.py` |
| #4279 | LRU `or True` tautology in `test_search_cache_stampede.py` |
| #4280 | 7 no-assertion tests in `test_search_integration.py` |
| #4281 | 10 no-assertion tests across two `test_search_integration_*` files |
| #4282 | 13 no-assertion downloader + rag-route-coverage tests |
| #4286 | 8 no-assert / dead-code security + rate-limit tests |
| #4287 | 7 no-assert "should not raise" metrics tests |
### A4. Tier 3 SHADOW / TESTS_STDLIB / H4_ASSERTS_MOCK
| PR | Description |
|---|---|
| #4269 | Tier 3 dead-code + stdlib shadow + redundant API tests |
| #4270 | 3 shadow / script-style test files (text_cleaner, duplicate_links_fix) |
| #4271 | 1 status-or-tautology fix + 3 hasattr-only tests in `test_diversity_explorer.py` |
| #4272 | Whole-file `test_evidence_evaluator.py` (27 tests, 0 SUT imports) |
| #4283 | 7 H4_ASSERTS_MOCK tests in `test_adaptive_explorer.py` |
| #4284 | 2 H4_ASSERTS_MOCK tests in `test_parallel_explorer.py` |
| #4285 | 3 H4_ASSERTS_MOCK / H6_only_isinstance tests in `test_diversity_explorer_coverage.py` |
### A5. Tier 4 FLAKY / freezegun / requires_llm
| PR | Description |
|---|---|
| #4288 | Gated `test_research_creation.py` with `@pytest.mark.requires_llm` (6 tests) |
| #4289 | Migrated 3 `test_search_cache.py` TTL tests to freezegun |
| #4291 | **Implemented unicode + URL-encoded path-traversal detection in PathValidator** — flipped 3 xfail tests to passing |
### A6. Tier 5 REDUNDANT dedupes (16 PRs)
| PR | Description |
|---|---|
| #4253 | Shadow `domain_classifier/test_models.py` deleted |
| #4254 | 6 duplicates in `test_search_engine_factory_coverage` files |
| #4255 | 10 duplicates in `test_dual_confidence_checker.py` (batch 1) |
| #4256 | 4 shadow weighted_score tests in `test_base_constraint_checker.py` |
| #4257 | 6 more duplicates in `test_dual_confidence_checker.py` (batch 2) |
| #4258 | Whole-file `test_evidence_analyzer_coverage.py` (8 duplicates) |
| #4259 | 17 duplicate EvidenceType tests in `test_base_evidence.py` |
| #4260 | 8 duplicates in `test_rejection_engine_extended.py` |
| #4261 | 2 cross-file duplicates (MCP + evidence analyzer) |
| #4263 | 19 duplicates in `test_evaluator_integration.py` |
| #4264 | 24 duplicates in `test_evaluator.py` (kept 2 unique survivors) |
| #4265 | 18 duplicates in `test_findings_repository.py` |
| #4266 | 16 duplicates across 2 filter test files |
| #4267 | 22 cross-file duplicates between evaluator pure_logic + high_value |
| #4268 | 7 misc duplicates across 4 files |
### A7. False-positive documentation
| PR | Description |
|---|---|
| #4292 | Documented `test_handles_errors_gracefully` as intentional startup-resilience behavior (PR #2118 walked back PR #2235's contract) |
## Category B — Marked KEEP by the punchlist itself (294 entries)
These entries appear in PUNCHLIST.md with `recommended_action: KEEP`
or `(see Tier guidance)` indicating the test is **intentionally** a
smoke / no-raise / one-liner enum-value check. The PUNCHLIST does not
request a PR for these.
Representative examples:
- `test_app_coverage.py::test_https_branch_does_not_raise` — KEEP (smoke test)
- `test_app_factory.py::test_response_has_security_headers` — KEEP
- `test_rate_limiting_tracker_coverage.py::test_programmatic_mode_no_op` — KEEP
- `test_search_cache.py::test_stampede_protection_single_fetch` — KEEP
## Category C — Stale line-number references (~250 entries)
These entries reference test methods that **still exist** in code but
**no longer have the flagged issue** — the assertion has already been
narrowed or the surrounding logic fixed by prior PRs.
Verified examples (by `grep -cE "status_code in \[[^]]*200[^]]*(401|403|404|500)"`):
| File | Punchlist entries | Actual current tautologies |
|---|---|---|
| `tests/research_library/routes/test_rag_routes.py` | 49 | **0** (all narrowed) |
| `tests/research_library/routes/test_library_routes.py` | 48 | **0** |
| `tests/web/routes/test_context_overflow_api.py` | 28 | 0 (last 2 fixed in #4273) |
These entries cannot be addressed by a new PR — there is nothing left
to change in code. A future PUNCHLIST regeneration would not produce
these entries against the current state of the repo.
## Category D — Legitimate config-smoke tests (5 entries)
`tests/database/test_alembic_migrations.py` has 5 tests with
`try/finally + no explicit assertion`:
- `test_migration_with_read_only_database`
- `test_migration_with_busy_timeout`
- `test_migration_with_echo_enabled`
- `test_migration_with_pool_pre_ping`
- `test_migration_with_static_pool`
Each test exercises a different SQLAlchemy engine configuration with
`run_migrations(engine)`. Per the inline comment "raises on failure",
the implicit assertion IS the contract — verifying the migration
framework works against each engine config. Adding an explicit
`assert get_current_revision(engine) == get_head_revision()` would
only restate what `run_migrations(engine)` already enforces internally.
These are legitimate engine-config smoke tests, not anti-patterns.
## Cumulative impact
- **50 PRs created**
- **~3,720 weak/shadow tests removed or strengthened**
- **~46,500 lines of dead/duplicate test code removed**
- **1 production bug fixed** (`SQLCardStorage.create()` — silent
dropping of flat `source_type`)
- **1 test bug fixed** (wrong URL in `test_context_overflow_api.py`
was passing on 404 silently)
- **1 SUT feature implemented** (PathValidator now detects URL-encoded,
double-URL-encoded, and unicode-look-alike path-traversal attacks)
- **6 Ollama-dependent integration tests** properly gated with
`@pytest.mark.requires_llm`
- **3 TTL tests** migrated from `time.sleep` to `freezegun`
## Verification
To verify no more mechanically-addressable items remain, the following
exhaustive AST scans were run across `tests/**/test_*.py`:
| Pattern | Tests matching as of session end |
|---|---|
| Body is pure `pass` or empty (no skip marker) | 0 |
| All assertions are literal `assert True` | 0 |
| `import X; assert X is not None` (only assertion) | 0 |
| `result is None or result is not None` tautology | 0 (in non-pending-PR code) |
| `or True` literal-tautology asserts | 0 |
| Shadow file (0 SUT imports, ≥5 tests, no `client.*` usage) | 0 deletable; remaining 4 have legitimate non-import-based SUT testing |
Every concrete pattern flagged by the heuristics in PUNCHLIST.md
methodology section H1H12 has been swept.