test: verify Live grouper disposal on a shared Python WebSocket (#3977)
When two transcript groupers observe the same Live dispatcher, callers must be able to detach and close one without stopping the other or losing the event stream. The existing grouper tests covered its own listeners and timers but did not exercise an attached connection. This tests both sync and async clients over a real local WebSocket. It checks that the first grouper cancels its active timer, typed and wildcard observers keep receiving the original values and future metadata, the second grouper continues accumulating, and the same socket accepts a post-disposal update. The peer waits for explicit caller teardown. Tests only; no generated or API changes. Validation: - 238 Live tests passed on Pydantic 2.12.5 and 238 on 1.10.26. - After typing the close callbacks and checking only event IDs present on the wire: 14 socket-role and grouper tests pass; Pyright reports 0 errors on the affected file. - Repository-configured `mypy .` passes across 1,920 source files; Ruff check, format and diff checks pass.
M
Mark Stuart committed
a444e4256d9b9a2349d187f792dc4bfa2dfba533
Parent: d0207b4
Committed by GitHub <noreply@github.com>
on 9/28/2026, 11:56:06 AM