From f034e99c239fab5337e4231b13e0b81df327db7f Mon Sep 17 00:00:00 2001 From: Oli Wenman Date: Wed, 22 Apr 2026 16:30:07 +0100 Subject: [PATCH 1/3] Feat: Add helper show commands to easily print avaliable devices and plans to user --- src/blueapi/client/client.py | 10 ++++++++++ tests/unit_tests/client/test_client.py | 14 ++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/blueapi/client/client.py b/src/blueapi/client/client.py index c5b41ff45e..7cdc845cb4 100644 --- a/src/blueapi/client/client.py +++ b/src/blueapi/client/client.py @@ -295,6 +295,11 @@ def get_plan(self, name: str) -> PlanModel: """ return self._rest.get_plan(name) + def show_plans(self) -> None: + """Command to print all avaliable plans.""" + for name in self.plans: + print(name) + @start_as_current_span(TRACER) @deprecated("devices property") def get_devices(self) -> DeviceResponse: @@ -334,6 +339,11 @@ def get_device(self, name: str) -> DeviceModel: return self._rest.get_device(name) + def show_devices(self) -> None: + """Command to print all avaliable devices.""" + for name in self.devices: + print(name) + @property @start_as_current_span(TRACER) def state(self) -> WorkerState: diff --git a/tests/unit_tests/client/test_client.py b/tests/unit_tests/client/test_client.py index a96f428e8c..ee7c09c73b 100644 --- a/tests/unit_tests/client/test_client.py +++ b/tests/unit_tests/client/test_client.py @@ -145,6 +145,13 @@ def test_get_plan(client: BlueapiClient): assert client.plans["foo"].model == PLAN +def test_show_plans(client: BlueapiClient, capsys: pytest.CaptureFixture): + client.show_plans() + captured = capsys.readouterr() + for dev in PLANS.plans: + assert dev.name in captured.out + + def test_get_nonexistant_plan( client: BlueapiClient, ): @@ -160,6 +167,13 @@ def test_get_device(client: BlueapiClient): assert client.devices.foo.model == DEVICE +def test_show_devices(client: BlueapiClient, capsys: pytest.CaptureFixture): + client.show_devices() + captured = capsys.readouterr() + for dev in DEVICES.devices: + assert dev.name in captured.out + + def test_get_nonexistent_device( client: BlueapiClient, ): From 8519e6059dab129adc2b39cbecdf2167a8d34256 Mon Sep 17 00:00:00 2001 From: Oli Wenman Date: Wed, 22 Apr 2026 17:39:05 +0100 Subject: [PATCH 2/3] Updated name from show to print --- src/blueapi/client/client.py | 8 ++++---- tests/unit_tests/client/test_client.py | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/blueapi/client/client.py b/src/blueapi/client/client.py index 7cdc845cb4..b9ec91c12b 100644 --- a/src/blueapi/client/client.py +++ b/src/blueapi/client/client.py @@ -295,8 +295,8 @@ def get_plan(self, name: str) -> PlanModel: """ return self._rest.get_plan(name) - def show_plans(self) -> None: - """Command to print all avaliable plans.""" + def print_plans(self) -> None: + """Print all avaliable plans.""" for name in self.plans: print(name) @@ -339,8 +339,8 @@ def get_device(self, name: str) -> DeviceModel: return self._rest.get_device(name) - def show_devices(self) -> None: - """Command to print all avaliable devices.""" + def print_devices(self) -> None: + """Print all avaliable devices.""" for name in self.devices: print(name) diff --git a/tests/unit_tests/client/test_client.py b/tests/unit_tests/client/test_client.py index ee7c09c73b..cf49b7bdbc 100644 --- a/tests/unit_tests/client/test_client.py +++ b/tests/unit_tests/client/test_client.py @@ -145,8 +145,8 @@ def test_get_plan(client: BlueapiClient): assert client.plans["foo"].model == PLAN -def test_show_plans(client: BlueapiClient, capsys: pytest.CaptureFixture): - client.show_plans() +def test_print_plans(client: BlueapiClient, capsys: pytest.CaptureFixture): + client.print_plans() captured = capsys.readouterr() for dev in PLANS.plans: assert dev.name in captured.out @@ -167,8 +167,8 @@ def test_get_device(client: BlueapiClient): assert client.devices.foo.model == DEVICE -def test_show_devices(client: BlueapiClient, capsys: pytest.CaptureFixture): - client.show_devices() +def test_print_devices(client: BlueapiClient, capsys: pytest.CaptureFixture): + client.print_devices() captured = capsys.readouterr() for dev in DEVICES.devices: assert dev.name in captured.out From 80d5c73836aa920487f8967980adf4df4250c9b9 Mon Sep 17 00:00:00 2001 From: Oli Wenman Date: Wed, 22 Apr 2026 17:42:25 +0100 Subject: [PATCH 3/3] Update spelling --- src/blueapi/client/client.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/blueapi/client/client.py b/src/blueapi/client/client.py index c52beeadb4..32d5890898 100644 --- a/src/blueapi/client/client.py +++ b/src/blueapi/client/client.py @@ -300,7 +300,7 @@ def get_plan(self, name: str) -> PlanModel: return self._rest.get_plan(name) def print_plans(self) -> None: - """Print all avaliable plans.""" + """Print all available plans.""" for name in self.plans: print(name) @@ -344,7 +344,7 @@ def get_device(self, name: str) -> DeviceModel: return self._rest.get_device(name) def print_devices(self) -> None: - """Print all avaliable devices.""" + """Print all available devices.""" for name in self.devices: print(name)