Skip to content

Commit 082c591

Browse files
committed
Add tests back for the deprecated methods
And a new test for the login
1 parent 33685b7 commit 082c591

2 files changed

Lines changed: 56 additions & 4 deletions

File tree

src/blueapi/client/rest.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ def _create_task_exceptions(response: requests.Response) -> Exception | None:
136136

137137
class BlueapiRestClient:
138138
_config: RestConfig
139+
_session_manager: SessionManager | None
139140
_pool: requests.Session
140141

141142
def __init__(

tests/unit_tests/client/test_client.py

Lines changed: 55 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,14 +177,22 @@ def test_get_child_device(mock_rest: Mock, client: BlueapiClient):
177177
assert x == "foo.x"
178178

179179

180-
def test_get_state(client: BlueapiClient):
180+
def test_state_property(client: BlueapiClient):
181181
assert client.state == WorkerState.IDLE
182182

183183

184-
def test_get_active_task(client: BlueapiClient):
184+
def test_get_state(client: BlueapiClient):
185+
assert client.get_state() == WorkerState.IDLE
186+
187+
188+
def test_active_task_property(client: BlueapiClient):
185189
assert client.active_task == ACTIVE_TASK
186190

187191

192+
def test_get_active_task(client: BlueapiClient):
193+
assert client.get_active_task() == ACTIVE_TASK
194+
195+
188196
def test_create_and_start_task_calls_both_creating_and_starting_endpoints(
189197
client: BlueapiClient,
190198
mock_rest: Mock,
@@ -235,10 +243,14 @@ def test_create_and_start_task_fails_if_task_start_fails(
235243
)
236244

237245

238-
def test_get_environment(client: BlueapiClient):
246+
def test_environment_property(client: BlueapiClient):
239247
assert client.environment == ENV
240248

241249

250+
def test_get_environment(client: BlueapiClient):
251+
assert client.get_environment() == ENV
252+
253+
242254
def test_reload_environment(
243255
client: BlueapiClient,
244256
mock_rest: Mock,
@@ -491,10 +503,14 @@ def callback(on_event: Callable[[AnyEvent, MessageContext], None]):
491503
mock_on_event.assert_called_once_with(COMPLETE_EVENT)
492504

493505

494-
def test_get_oidc_config(client, mock_rest):
506+
def test_oidc_config_property(client, mock_rest):
495507
assert client.oidc_config == mock_rest.get_oidc_config()
496508

497509

510+
def test_get_oidc_config(client, mock_rest):
511+
assert client.get_oidc_config() == mock_rest.get_oidc_config()
512+
513+
498514
def test_get_plans_span_ok(exporter: JsonObjectSpanExporter, client: BlueapiClient):
499515
with asserting_span_exporter(exporter, "plans"):
500516
_ = client.plans
@@ -849,3 +865,38 @@ def subscribe(on_event: Callable[[AnyEvent, MessageContext], None]):
849865

850866
assert failing_callback.mock_calls == [call(evt), call(COMPLETE_EVENT)]
851867
assert callback.mock_calls == [call(evt), call(COMPLETE_EVENT)]
868+
869+
870+
@patch("blueapi.client.client.SessionManager")
871+
def test_client_login_existing_login(mock_session_manager: Mock, client: BlueapiClient):
872+
client.login()
873+
874+
mock_session_manager.from_cache.assert_called_once()
875+
mock_session_manager.from_cache().get_valid_access_token.assert_called_once()
876+
877+
878+
@patch("blueapi.client.client.SessionManager")
879+
def test_client_new_login(mock_session_manager: Mock, client: BlueapiClient):
880+
manager = Mock()
881+
manager.get_valid_access_token.side_effect = ValueError("No existing token")
882+
883+
mock_session_manager.from_cache.return_value = manager
884+
885+
client.login()
886+
887+
mock_session_manager.assert_called_once()
888+
mock_session_manager.return_value.start_device_flow.assert_called_once()
889+
890+
891+
@patch("blueapi.client.client.SessionManager")
892+
def test_client_login_no_oidc(
893+
mock_session_manager: Mock, mock_rest: Mock, client: BlueapiClient
894+
):
895+
mock_rest.get_oidc_config.return_value = None
896+
mock_session_manager.from_cache.return_value.get_valid_access_token.side_effect = (
897+
ValueError("No existing token")
898+
)
899+
900+
client.login()
901+
902+
mock_session_manager.assert_not_called()

0 commit comments

Comments
 (0)