Fix test suite: pad expectations, container pytest config, asyncio markers
CI / lint (push) Failing after 5s
CI / test (push) Successful in 19s

Three unrelated failures from `make test` on the node:

test_metadata_watcher: two tests asserted the old zero-pad tgid_change
contract. Both were off by exactly call_tail_pad_seconds, i.e. the code
was doing what f1de157 intended and the tests encoded the behaviour we
deliberately changed. Updated to expect the pad.

test_pulse: four async tests errored with "async def functions are not
natively supported". Root cause is not the tests - pytest.ini sets
asyncio_mode = auto but the Dockerfile only copies app/ and tests/, so
the container had no pytest config at all and fell back to strict mode.
That is also why these passed in a local venv and failed on the node.
Copy pytest.ini into the image, and add explicit @pytest.mark.asyncio so
the tests hold up regardless of how pytest is configured.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Logan Cusano
2026-08-05 00:14:05 -04:00
parent f1de157d69
commit 085fcdf1a1
3 changed files with 16 additions and 4 deletions
+7 -4
View File
@@ -452,9 +452,11 @@ async def test_different_tgid_grant_splits_recording(watcher, clock):
assert ended["call_id"] == first_id
assert ended["tgid"] == 1111
assert ended["end_reason"] == "tgid_change"
# The outgoing segment ends exactly where the new one begins — no tail pad,
# or it would swallow the first moments of the new talkgroup.
assert ended["ended_at_epoch"] == split_time
# The outgoing segment is padded PAST where the new one begins. The buffered
# audio lags control-channel timestamps by ~1.5s, so ending exactly at the
# split cut the outgoing call's last words. The overlap is correct — the
# audio stream really does hold one call's tail then the next call's start.
assert ended["ended_at_epoch"] == split_time + settings.call_tail_pad_seconds
assert watcher.on_call_start.call_args[0][0]["started_at_epoch"] == split_time
@@ -482,7 +484,8 @@ async def test_multiple_call_log_entries_in_one_poll(watcher, clock):
assert ended["tgid"] == 1111
assert ended["transmissions"] == 2
assert ended["started_at_epoch"] == t0
assert ended["ended_at_epoch"] == t0 + 0.9
# Split close is padded past the new grant — see the tgid_change test above.
assert ended["ended_at_epoch"] == t0 + 0.9 + settings.call_tail_pad_seconds
@pytest.mark.asyncio