From b24ef8aa6f1f62148420b5f2130c4176ec150c16 Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Sat, 19 Sep 2026 21:18:00 -0700 Subject: [PATCH] Keep live playback state unknown when supervisor status fails --- roadscore/prototype/live_controller.py | 2 +- roadscore/prototype/test_live_supervisor.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/roadscore/prototype/live_controller.py b/roadscore/prototype/live_controller.py index 8020a07150..b3439d38b3 100644 --- a/roadscore/prototype/live_controller.py +++ b/roadscore/prototype/live_controller.py @@ -29,7 +29,7 @@ class LiveController: return {**status,'available':True,'can_enable':not status.get('enabled',False) and not reason, 'reason':reason or status.get('reason','')} except Exception as error: - return dict(available=False,enabled=False,state='DEGRADED',can_enable=False,reason='Live supervisor status unavailable: '+str(error)) + return dict(available=False,enabled=None,state='DEGRADED',can_enable=False,reason='Live supervisor status unavailable: '+str(error)) def set_enabled(self, enabled): if type(enabled) is not bool:raise ValueError('enabled must be a boolean') diff --git a/roadscore/prototype/test_live_supervisor.py b/roadscore/prototype/test_live_supervisor.py index 502eeb9a55..8bd5434852 100644 --- a/roadscore/prototype/test_live_supervisor.py +++ b/roadscore/prototype/test_live_supervisor.py @@ -52,3 +52,11 @@ def test_missing_adapter_unavailable(): assert not controller.status()['available'] and not controller.status()['can_enable'] with pytest.raises(RuntimeError):controller.set_enabled(True) assert controller.set_enabled(False)['enabled'] is False + +def test_failed_status_does_not_claim_audio_is_stopped(): + adapter=Mock() + adapter.status.side_effect=RuntimeError('unreachable') + controller=LiveController(adapter=adapter) + assert controller.status()['enabled'] is None + controller.set_enabled(False) + adapter.stop_owned.assert_called_once()