diff --git a/tests/test_client.py b/tests/test_client.py index 3943083..2364c5c 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -1729,7 +1729,7 @@ async def test_subscribe_voice_assistant( async def handle_stop() -> None: stops.append(True) - await client.subscribe_voice_assistant(handle_start, handle_stop) + unsub = await client.subscribe_voice_assistant(handle_start, handle_stop) send.assert_called_once_with(SubscribeVoiceAssistantRequest(subscribe=True)) send.reset_mock() audio_settings = VoiceAssistantAudioSettings( @@ -1767,6 +1767,15 @@ async def test_subscribe_voice_assistant( mock_data_received(protocol, generate_plaintext_packet(response)) await asyncio.sleep(0) assert stops == [True] + send.reset_mock() + unsub() + send.assert_called_once_with(SubscribeVoiceAssistantRequest(subscribe=False)) + send.reset_mock() + await client.disconnect(force=True) + # Ensure abort callback is a no-op after disconnect + # and does not raise + unsub() + assert len(send.mock_calls) == 0 @pytest.mark.asyncio @@ -1791,7 +1800,7 @@ async def test_subscribe_voice_assistant_failure( async def handle_stop() -> None: stops.append(True) - await client.subscribe_voice_assistant(handle_start, handle_stop) + unsub = await client.subscribe_voice_assistant(handle_start, handle_stop) send.assert_called_once_with(SubscribeVoiceAssistantRequest(subscribe=True)) send.reset_mock() audio_settings = VoiceAssistantAudioSettings( @@ -1829,3 +1838,12 @@ async def test_subscribe_voice_assistant_failure( mock_data_received(protocol, generate_plaintext_packet(response)) await asyncio.sleep(0) assert stops == [True] + send.reset_mock() + unsub() + send.assert_called_once_with(SubscribeVoiceAssistantRequest(subscribe=False)) + send.reset_mock() + await client.disconnect(force=True) + # Ensure abort callback is a no-op after disconnect + # and does not raise + unsub() + assert len(send.mock_calls) == 0