Skip to content

Commit 6db1913

Browse files
committed
Update param tests
1 parent 5255aa8 commit 6db1913

1 file changed

Lines changed: 51 additions & 7 deletions

File tree

radio/tests/test_params.py

Lines changed: 51 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,31 @@ def test_refreshParams_wrongState(
448448
}
449449

450450

451+
def test_getParams_wrongState(socketio_client: SocketIOTestClient, droneStatus) -> None:
452+
droneStatus.state = "dashboard"
453+
socketio_result = send_and_receive_params(socketio_client, "get_params")
454+
455+
assert socketio_result["name"] == "params_error"
456+
assert socketio_result["args"][0] == {
457+
"message": "You must be on the params screen to get parameters.",
458+
}
459+
460+
461+
def test_getParams_returnsCachedParams(
462+
socketio_client: SocketIOTestClient, droneStatus
463+
) -> None:
464+
droneStatus.state = "params"
465+
expected_params = [
466+
{"param_id": "ACRO_BAL_ROLL", "param_value": 2.0, "param_type": 9}
467+
]
468+
droneStatus.drone.paramsController.params = expected_params
469+
470+
socketio_result = send_and_receive_params(socketio_client, "get_params")
471+
472+
assert socketio_result["name"] == "get_params_result"
473+
assert socketio_result["args"][0] == {"success": True, "data": expected_params}
474+
475+
451476
@pytest.mark.skip(reason="Need to find a better way to simulate a timeout")
452477
def test_refreshParams_timeout(
453478
socketio_client: SocketIOTestClient, droneStatus
@@ -457,17 +482,18 @@ def test_refreshParams_timeout(
457482
socketio_result = send_and_receive_params(socketio_client, "refresh_params")
458483
assert (
459484
socketio_result["name"] == "params_error"
460-
or socketio_result["name"] == "params"
485+
or socketio_result["name"] == "get_params_result"
461486
)
462487
if socketio_result["name"] == "params_error":
463488
assert socketio_result["args"][0] == {
464489
"message": "Parameter request timed out after 3 minutes."
465490
}
466491

467-
if socketio_result["name"] == "params":
468-
assert (
469-
socketio_result["args"][0] == droneStatus.drone.paramsController.params
470-
)
492+
if socketio_result["name"] == "get_params_result":
493+
assert socketio_result["args"][0] == {
494+
"success": True,
495+
"data": droneStatus.drone.paramsController.params,
496+
}
471497

472498

473499
def test_refreshParams_alwaysFetchesAndEmitsProgress(
@@ -510,15 +536,33 @@ def fake_fetch_all_params_blocking(timeout_secs=120, progress_update_callback=No
510536
assert any(
511537
event["name"] == "param_request_update" for event in first_refresh_events
512538
)
513-
assert any(event["name"] == "params" for event in first_refresh_events)
539+
assert any(event["name"] == "get_params_result" for event in first_refresh_events)
540+
assert any(
541+
event["name"] == "get_params_result"
542+
and event["args"][0]
543+
== {
544+
"success": True,
545+
"data": [{"param_id": "TEST_PARAM", "param_value": 2.0, "param_type": 9}],
546+
}
547+
for event in first_refresh_events
548+
)
514549

515550
socketio_client.emit("refresh_params")
516551
second_refresh_events = socketio_client.get_received()
517552

518553
assert any(
519554
event["name"] == "param_request_update" for event in second_refresh_events
520555
)
521-
assert any(event["name"] == "params" for event in second_refresh_events)
556+
assert any(event["name"] == "get_params_result" for event in second_refresh_events)
557+
assert any(
558+
event["name"] == "get_params_result"
559+
and event["args"][0]
560+
== {
561+
"success": True,
562+
"data": [{"param_id": "TEST_PARAM", "param_value": 2.0, "param_type": 9}],
563+
}
564+
for event in second_refresh_events
565+
)
522566
assert call_count == 2
523567

524568

0 commit comments

Comments
 (0)