test: raise coverage 64% -> 90% with behavior-focused tests + enforced gate
build-image / test (push) Failing after 53s
build-image / build (push) Has been skipped

New suites assert real behavior, not just that code runs:
- test_types: workout serialization round-trips (recursive steps, camelCase
  keys, enum conversion) + __str__ formatting.
- test_api_client: request construction (URL/method/auth/body) and the full
  HTTP status-code -> message mapping.
- test_auth: RS256 JWT verification — valid -> AccessToken; expired/wrong-aud/
  wrong-issuer/wrong-key/missing-claim -> None; audience slash variants.
- test_server_setup: transport selection + start_server dispatch.
- test_events / test_activities / test_custom_items: request payloads
  (create vs update, POST/PUT/DELETE), delete accounting, JSON-content parsing,
  and error/empty branches.

Enforce >=90 via pytest --cov-fail-under=90; CI test job now gates the build.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-04 18:39:20 -04:00
parent 1ec2a76d1e
commit 43bbbb6bbb
11 changed files with 1346 additions and 2 deletions
+17
View File
@@ -10,7 +10,24 @@ permissions:
packages: write
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 15
env:
API_KEY: test
ATHLETE_ID: i1
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install (with dev extras)
run: pip install --quiet ".[dev]"
- name: Test + coverage gate (>=90%)
run: pytest
build:
needs: test
runs-on: ubuntu-latest
timeout-minutes: 20
env: