test: offline unit tests for config, data files and LLM reply parsing #3

Closed
forge-recovery wants to merge 1 commits from ci/offline-unit-tests into develop
pull from: ci/offline-unit-tests
Owner

Adds 14 offline unittest tests under tests/ so the central Python CI profile has real tests to execute. They cover config loading (including the example-config fallback), analysis/collected-data persistence, the LLM JSON reply parser and provider selection. No network, cloud account or LLM credentials are used.

Verified locally with the central python-verify.sh on Python 3.13 as UID 1000 (dependencies=resolve, test-path=tests): ruff clean, 14 tests executed.

Old CI semantics were flake8 plus an import/YAML smoke on Python 3.8 with unpinned requirements and no tests; this PR does not pin requirements. Central policy will set dependencies=resolve and test-path=tests.

🤖 Generated with Claude Code

Adds 14 offline unittest tests under `tests/` so the central Python CI profile has real tests to execute. They cover config loading (including the example-config fallback), analysis/collected-data persistence, the LLM JSON reply parser and provider selection. No network, cloud account or LLM credentials are used. Verified locally with the central `python-verify.sh` on Python 3.13 as UID 1000 (`dependencies=resolve`, `test-path=tests`): ruff clean, 14 tests executed. Old CI semantics were flake8 plus an import/YAML smoke on Python 3.8 with unpinned requirements and no tests; this PR does not pin requirements. Central policy will set `dependencies=resolve` and `test-path=tests`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
forge-recovery added 1 commit 2026-11-01 21:05:14 +00:00
test: offline unit tests for config, data files and LLM reply parsing
KofTwentyTwo/ci-policy: ci / fork-guard (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / go-0 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / go-nix-1 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / gradle-2 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / gradle-3 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / java-docker-4 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / java-maven-5 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / manifests-6 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / nix-7 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / node-8 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / rust-10 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / rust-11 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / rust-12 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / source-config-13 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / image-build-0 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / image-build-1 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / image-build-2 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / image-build-3 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / image-build-4 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / image-build-5 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / image-build-6 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / image-build-7 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / not-enrolled (pull_request) Skipped
KofTwentyTwo/ci-policy: native / fork-deny (pull_request) Skipped
KofTwentyTwo/ci-policy: native / dotnet-0 (pull_request) Skipped
KofTwentyTwo/ci-policy: native / swift-1 (pull_request) Skipped
KofTwentyTwo/ci-policy: native / swift-2 (pull_request) Skipped
KofTwentyTwo/ci-policy: native / swift-3 (pull_request) Skipped
KofTwentyTwo/ci-policy: native / native-result (pull_request) Successful in 4s
KofTwentyTwo/ci-policy: Shared Python CI / secrets (pull_request) Successful in 10s
KofTwentyTwo/ci-policy: Shared Python CI / verify (pull_request) Failing after 2m47s
KofTwentyTwo/ci-policy: Shared Python CI / gate (pull_request) Failing after 9s
KofTwentyTwo/ci-policy: ci / python-9 (pull_request) Failing after 2m59s
KofTwentyTwo/ci-policy: ci / ci-result (pull_request) Failing after 4s
86ec451f74
Covers load_config, save/load of analysis and collected data, the LLM JSON
reply parser and provider selection. No network, cloud or LLM credentials.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Author
Owner

Parked by scope decision: these unit tests go beyond the legacy CI smoke. Closed unmerged; branch ci/offline-unit-tests is preserved.

Parked by scope decision: these unit tests go beyond the legacy CI smoke. Closed unmerged; branch ci/offline-unit-tests is preserved.
forge-recovery closed this pull request 2026-11-01 21:40:01 +00:00

Pull request closed

Please reopen this pull request to perform a merge.
Sign in to join this conversation.