fix(harness): install httpx for replay Python evals
peer-discovery-404 imports workspace/a2a_client.py which depends on httpx; the runner's stock Python doesn't have it, so the replay's PARSE assertion (b) fails with ModuleNotFoundError on every run. The WIRE assertion (a) — pure curl — passes, so the failure was masking just enough to make the replay LOOK partially-broken when the tenant side is fine. Adding tests/harness/requirements.txt with only httpx instead of sourcing workspace/requirements.txt: that file pulls a2a-sdk, langchain-core, opentelemetry, sqlalchemy, temporalio, etc. — ~30s of install for one replay's PARSE step. The harness's deps surface should grow when a new replay introduces a new import, not by default. Workflow gains one step (`pip install -r tests/harness/requirements.txt`) between the /etc/hosts setup and run-all-replays. No other changes.
This commit is contained in:
parent
9dae0503ee
commit
c8b17ea1ad
9
.github/workflows/harness-replays.yml
vendored
9
.github/workflows/harness-replays.yml
vendored
@ -116,6 +116,15 @@ jobs:
|
||||
echo "127.0.0.1 harness-tenant.localhost" | sudo tee -a /etc/hosts >/dev/null
|
||||
getent hosts harness-tenant.localhost
|
||||
|
||||
- name: Install Python deps for replays
|
||||
# peer-discovery-404 (and future replays) eval Python against the
|
||||
# running tenant — importing workspace/a2a_client.py pulls in
|
||||
# httpx. tests/harness/requirements.txt holds just the HTTP-client
|
||||
# surface to keep CI install fast (~3s) vs the full
|
||||
# workspace/requirements.txt (~30s).
|
||||
if: needs.detect-changes.outputs.run == 'true'
|
||||
run: pip install -r tests/harness/requirements.txt
|
||||
|
||||
- name: Run all replays against the harness
|
||||
# run-all-replays.sh: boot via up.sh → seed via seed.sh → run
|
||||
# every replays/*.sh → tear down via down.sh on EXIT (trap).
|
||||
|
||||
14
tests/harness/requirements.txt
Normal file
14
tests/harness/requirements.txt
Normal file
@ -0,0 +1,14 @@
|
||||
# Harness-replay Python deps — minimal set for replays/*.sh scripts that
|
||||
# eval Python against the running tenant (e.g. importing
|
||||
# workspace/a2a_client.py to assert parser behavior).
|
||||
#
|
||||
# This is intentionally smaller than workspace/requirements.txt: the
|
||||
# replays don't need a2a-sdk, langchain, opentelemetry, etc. — only the
|
||||
# HTTP client surface that the imported helpers depend on. Adding the
|
||||
# full workspace deps would slow every harness CI run by ~30s for no
|
||||
# gain.
|
||||
#
|
||||
# Add a line here (with a version constraint matching workspace/requirements.txt)
|
||||
# when a new replay introduces a new Python import.
|
||||
|
||||
httpx>=0.28.1
|
||||
Loading…
Reference in New Issue
Block a user