77import json
88import time
99from datetime import datetime , timezone
10- from typing import Any
1110
1211import pytest
1312from fprime .common .models .serialize .numerical_types import U32Type
@@ -51,7 +50,7 @@ def set_time(fprime_test_api: IntegrationTestAPI, dt: datetime = None):
5150 fprime_test_api .assert_event ("ReferenceDeployment.rv3028Manager.TimeSet" , timeout = 2 )
5251
5352
54- def get_time (fprime_test_api : IntegrationTestAPI ) -> dict [ str , Any ] :
53+ def get_time (fprime_test_api : IntegrationTestAPI ) -> datetime :
5554 """Helper function to request packet and get fresh WatchdogTransitions telemetry"""
5655 fprime_test_api .clear_histories ()
5756 fprime_test_api .send_and_assert_command (
@@ -60,19 +59,17 @@ def get_time(fprime_test_api: IntegrationTestAPI) -> dict[str, Any]:
6059 result : EventData = fprime_test_api .assert_event (
6160 "ReferenceDeployment.rtcManager.GetTime" , timeout = 2
6261 )
63-
64- return result .get_dict ()
62+ return datetime .fromisoformat (result .display_text )
6563
6664
6765def test_01_current_time_set (fprime_test_api : IntegrationTestAPI ):
6866 """Test that we can set current time"""
6967
7068 # Fetch time from fixture setting current time
71- event_data = get_time (fprime_test_api )
72- event_display_text_time = datetime .fromisoformat (event_data ["display_text" ])
69+ event_time = get_time (fprime_test_api )
7370
7471 # Assert time is within 30 seconds of now
75- pytest .approx (event_display_text_time , abs = 30 ) == datetime .now (timezone .utc )
72+ pytest .approx (event_time , abs = 30 ) == datetime .now (timezone .utc )
7673
7774
7875def test_02_set_time_in_past (fprime_test_api : IntegrationTestAPI ):
@@ -86,8 +83,6 @@ def test_02_set_time_in_past(fprime_test_api: IntegrationTestAPI):
8683 result : EventData = fprime_test_api .assert_event (
8784 "ReferenceDeployment.rv3028Manager.TimeSet" , timeout = 2
8885 )
89- event_data : dict [str , Any ] = result .get_dict ()
90- # args = event_data.args
9186
9287 # Fetch previously set time from event args
9388 event_previous_time_arg : U32Type = result .args [0 ]
@@ -99,30 +94,27 @@ def test_02_set_time_in_past(fprime_test_api: IntegrationTestAPI):
9994 pytest .approx (previously_set_time , abs = 30 ) == datetime .now (timezone .utc )
10095
10196 # Fetch newly set time from event
102- event_data = get_time (fprime_test_api )
103- event_display_text_time = datetime .fromisoformat (event_data ["display_text" ])
97+ event_time = get_time (fprime_test_api )
10498
10599 # Assert time is within 30 seconds of curiosity landing
106- pytest .approx (event_display_text_time , abs = 30 ) == curiosity_landing
100+ pytest .approx (event_time , abs = 30 ) == curiosity_landing
107101
108102
109103def test_03_time_incrementing (fprime_test_api : IntegrationTestAPI ):
110104 """Test that time increments over time"""
111105
112106 # Fetch initial time
113- initial_event_data = get_time (fprime_test_api )
114- initial_time = datetime .fromisoformat (initial_event_data ["display_text" ])
107+ initial_event_time = get_time (fprime_test_api )
115108
116109 # Wait for time to increment
117110 time .sleep (2.0 )
118111
119112 # Fetch updated time
120- updated_event_data = get_time (fprime_test_api )
121- updated_time = datetime .fromisoformat (updated_event_data ["display_text" ])
113+ updated_event_time = get_time (fprime_test_api )
122114
123115 # Assert time has increased
124- assert updated_time > initial_time , (
125- f"Time should increase. Initial: { initial_time } , Updated: { updated_time } "
116+ assert updated_event_time > initial_event_time , (
117+ f"Time should increase. Initial: { initial_event_time } , Updated: { updated_event_time } "
126118 )
127119
128120
0 commit comments