Skip to content

Commit 68b0f95

Browse files
leszkoclaude
andauthored
fix(tests): unblock AudioProcessingTrack recv() silence tests (#1022)
## Summary - CI test runs were timing out at ~2h (recent runs cancelled at 1h43m / 1h56m / 2h0m). Root cause: PR #1001 ("Delay A/V in WebRTC until both tracks have been seen.") changed `AudioProcessingTrack.recv()` so the first call now blocks in `_wait_for_initial_audio()` until enough audio has been buffered, but three tests in `tests/test_audio_processing_track.py` still constructed tracks with `started=False` and fed no / insufficient / paused audio — so `recv()` looped forever. - Drop `started=False` from the silence-fallback tests (`test_no_audio_returns_silence`, `test_paused_returns_silence`, `test_undersized_chunk_returns_silence`) so they exercise the post-anchor `recv()` path, which is the path these silence-fallback assertions actually care about. - Local `pytest` now completes in ~70s instead of hanging. ## Test plan - [x] `uv run pytest tests/test_audio_processing_track.py -v` — 30/30 pass in ~1.2s - [x] `uv run pytest` — full suite completes in ~70s (vs. previously hanging on `test_no_audio_returns_silence`) - [x] `uv run ruff check tests/test_audio_processing_track.py` clean - [x] `uv run ruff format --check tests/test_audio_processing_track.py` clean 🤖 Generated with [Claude Code](https://claude.com/claude-code) Signed-off-by: Rafał Leszko <rafal@livepeer.org> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 9b7bae6 commit 68b0f95

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

tests/test_audio_processing_track.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ def test_preserves_dc(self):
200200

201201
class TestRecv:
202202
def test_no_audio_returns_silence(self):
203-
track = _make_track(started=False)
203+
track = _make_track()
204204
frame = _run(track.recv())
205205
raw = np.frombuffer(bytes(frame.planes[0]), dtype=np.int16)
206206
assert np.all(raw == 0)
@@ -247,7 +247,7 @@ def test_1d_tensor_treated_as_mono(self):
247247
assert isinstance(frame, AudioFrame)
248248

249249
def test_paused_returns_silence(self):
250-
track = _make_track(started=False)
250+
track = _make_track()
251251
track.frame_processor.paused = True
252252
audio = torch.randn(2, SAMPLES_PER_FRAME + 100)
253253
track.frame_processor.get_audio_packet = MagicMock(
@@ -259,7 +259,7 @@ def test_paused_returns_silence(self):
259259
assert np.all(raw == 0)
260260

261261
def test_undersized_chunk_returns_silence(self):
262-
track = _make_track(started=False)
262+
track = _make_track()
263263
audio = torch.randn(2, 100) # too small for a 960-sample frame
264264
track.frame_processor.get_audio_packet = MagicMock(
265265
side_effect=_once(audio, 48000)

0 commit comments

Comments
 (0)