Summary
Four explicit claims in the README have no test coverage:
- aiohttp interceptor branch.
_interceptor.py patches aiohttp.ClientSession._request, but tests/test_interceptor.py only covers urllib3, httpx sync, and httpx async. Zero direct aiohttp tests.
- No headers/bodies captured (privacy contract). Add a test that asserts
RawEvent-shaped output carries no dict-typed payload field, plus a test that issues a request with sensitive headers and confirms they don't surface.
- No self-instrumentation. Verify that
urllib.request calls made from _post_cloud do not trigger the urllib3 patch.
- 5xx retry path.
test_no_retry_on_4xx exists but no positive test that max_retries actually runs n attempts with exponential backoff.
Also missing:
- deprecation-warning test for
flush_interval
would_overflow early-flush path test
handle.dispose() actually stops new flushes
_LocalTransport graceful no-op when websockets missing
- Flask graceful degradation when
flask is missing
Fix
Add tests for each. The aiohttp tests should mirror the existing httpx async tests (success, 4xx capture, latency, response-bytes, double-count guard via reentrancy).
Files
tests/test_interceptor.py
tests/test_transport.py
tests/test_init.py
tests/test_flask.py
Priority
P1 — the most-marketed claims (privacy, no self-trace) are unverified; an entire interceptor branch (aiohttp) is untested.
Summary
Four explicit claims in the README have no test coverage:
_interceptor.pypatchesaiohttp.ClientSession._request, buttests/test_interceptor.pyonly covers urllib3, httpx sync, and httpx async. Zero direct aiohttp tests.RawEvent-shaped output carries no dict-typed payload field, plus a test that issues a request with sensitive headers and confirms they don't surface.urllib.requestcalls made from_post_clouddo not trigger the urllib3 patch.test_no_retry_on_4xxexists but no positive test thatmax_retriesactually runsnattempts with exponential backoff.Also missing:
flush_intervalwould_overflowearly-flush path testhandle.dispose()actually stops new flushes_LocalTransportgraceful no-op whenwebsocketsmissingflaskis missingFix
Add tests for each. The aiohttp tests should mirror the existing httpx async tests (success, 4xx capture, latency, response-bytes, double-count guard via reentrancy).
Files
tests/test_interceptor.pytests/test_transport.pytests/test_init.pytests/test_flask.pyPriority
P1 — the most-marketed claims (privacy, no self-trace) are unverified; an entire interceptor branch (aiohttp) is untested.