@@ -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" )
452477def 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
473499def 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