Skip to content

Commit 85a68f2

Browse files
nficanoclaude
andcommitted
chore: add [test] extra and make test target
`pip install agentruntimecontrolprotocol[test,all]` now installs pytest, pytest-cov, and the property/integration test deps (hypothesis, dirty-equals, aiohttp, starlette, opentelemetry-sdk) needed to run the full suite without uv. `make test` runs the standard incantation: `pytest --cov --cov-branch --cov-report=xml`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent aaa899f commit 85a68f2

3 files changed

Lines changed: 47 additions & 2 deletions

File tree

Makefile

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.PHONY: diagrams build clean publish publish-test
1+
.PHONY: diagrams build clean publish test
22

33
DIAGRAMS := arch-overview session-lifecycle job-lifecycle capability-negotiation heartbeat-ack result-chunk-progress
44
DIAGRAM_DIR := docs/diagrams
@@ -23,3 +23,10 @@ build: clean
2323
# rc file. Run `make build` first or this target will fail.
2424
publish: build
2525
uv publish
26+
27+
# Run the test suite with coverage. Equivalent to:
28+
# pip install -e .[test,all]
29+
# pytest --cov --cov-branch --cov-report=xml
30+
# but uses `uv run` so the lockfile is honored.
31+
test:
32+
uv run pytest --cov --cov-branch --cov-report=xml

pyproject.toml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,22 @@ otel = [
3636
]
3737
# JWKS fetching for `JWTVerifier` over HTTPS.
3838
jwks = ["httpx>=0.28.1"]
39+
# `pip install agentruntimecontrolprotocol[test,all]` — enough to run
40+
# `pytest --cov --cov-branch --cov-report=xml` against the full suite.
41+
# Pair with `[all]` so the runtime/jwks deps the integration tests reach
42+
# for are present.
43+
test = [
44+
"pytest>=9.0.3",
45+
"pytest-cov>=7.1.0",
46+
"pytest-asyncio>=1.3.0",
47+
"pytest-randomly>=4.1.0",
48+
"pytest-timeout>=2.4.0",
49+
"hypothesis>=6.152.9",
50+
"dirty-equals>=0.11",
51+
"aiohttp>=3.13.5",
52+
"starlette>=1.0.1",
53+
"opentelemetry-sdk>=1.42.1,<2",
54+
]
3955
# Everything — pulls in runtime + otel + jwks.
4056
all = [
4157
"aiosqlite>=0.22.1",

uv.lock

Lines changed: 23 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)