• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kubernetes-sigs / inference-perf / 34280256280
79%

Build:
DEFAULT BRANCH: main
Ran 08 Sep 2026 09:29PM UTC
Jobs 1
Files 116
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

08 Sep 2026 09:22PM UTC coverage: 78.286% (+0.07%) from 78.217%
34280256280

push

github

web-flow
test: integration coverage for partial response body on a broken SSE stream (#712)

Closes #531.

## What

Adds the Integration-tier test for #531 from the v0.7.0 testing plan
(#606, per-change lane, no model server).

#530 already fixed the bug: `parse_sse_stream` wraps a mid-stream
failure in `StreamInterruptedError` carrying the bytes read so far, and
`process_request` recovers them into `response_data`. Nothing held that
recovery in place, which is the shape #410 shipped in the #564 lineage:
a correct fix in the tree with no test gating it.

Filing this as `Closes` per @achandrasekar's request on the issue to
close it once the merged fix is verified. The two follow-ups #531 lists
as out of scope will be filed separately.

## How

`TruncatingSSEServer` speaks raw HTTP/1.1 and does exactly what #531
describes: returns 200, writes valid SSE frames, declares a
`Content-Length` larger than the body it actually sends, then
half-closes. aiohttp raises a real `ClientPayloadError`, so the recovery
branch runs through the genuine exception path rather than a patched-in
exception. Per the tier's "fake the conditions, never the oracle" rule,
the induced condition is faked and the assertion is against the bytes
the fake recorded sending.

Four tests:

| Test | Pins |
|---|---|
| `test_partial_body_is_preserved_when_the_stream_breaks` |
`response_data` equals the sent bytes, raw SSE framing included |
| `test_underlying_exception_is_reported_not_the_wrapper` | `error_type`
is `ClientPayloadError`, not the `StreamInterruptedError` wrapper |
| `test_break_before_any_body_byte_leaves_the_response_empty` | the
empty-`raw_content` branch does not fall through to the non-200
placeholder text |
| `test_per_request_report_carries_the_partial_body` | the bytes survive
into `per_request_lifecycle_metrics`, the surface #531 is actually about
|

## Verification

Mutation-tested rather than just observed green. Each mutation reverts
one piece of the #530 fix:

| Mutation | ... (continued)

9107 of 11633 relevant lines covered (78.29%)

0.78 hits per line

Jobs
ID Job ID Ran Files Coverage
1 34280256280.1 08 Sep 2026 09:29PM UTC 116
78.29
GitHub Action Run
Source Files on build 34280256280
  • Tree
  • List 116
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34280256280
  • 850536a8 on github
  • Prev Build on main (#34111455632)
  • Next Build on main (#34299339164)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc