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
..

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.