feat(factory): add GNSS test and LED status modes
This commit is contained in:
@@ -75,7 +75,7 @@ class FactoryHostTests(unittest.TestCase):
|
||||
def test_ft1_ignores_sdk_log_and_parses_node(self):
|
||||
self.assertIsNone(parse_ft1_line("DP1312EA is OK!"))
|
||||
message = parse_ft1_line(
|
||||
'FT1 {"v":1,"type":"node_result","seq":3,"session":"BOOT-1",'
|
||||
'FT1 {"v":2,"type":"node_result","seq":3,"session":"BOOT-1",'
|
||||
'"uptime_ms":2450,"imei":"860123456789012","iccid":"","nfc_uid":"",'
|
||||
'"node":1,"name":"POWER_ADC","result":"PASS","code":0,"elapsed_ms":350,'
|
||||
'"data":{"voltage_mv":3865}}'
|
||||
@@ -85,17 +85,17 @@ class FactoryHostTests(unittest.TestCase):
|
||||
def test_ft1_session_result_and_sequence_guard(self):
|
||||
session = FT1Session()
|
||||
start = parse_ft1_line(
|
||||
'FT1 {"v":1,"type":"session_start","seq":1,"session":"BOOT-1",'
|
||||
'FT1 {"v":2,"type":"session_start","seq":1,"session":"BOOT-1",'
|
||||
'"uptime_ms":2050,"imei":"860123456789012","iccid":"","nfc_uid":"",'
|
||||
'"fw":"FACTORY_TEST_1.0.0","start_time":null}'
|
||||
'"fw":"FACTORY_TEST_1.1.0","start_time":null}'
|
||||
)
|
||||
session.apply(start)
|
||||
result = parse_ft1_line(
|
||||
'FT1 {"v":1,"type":"session_result","seq":2,"session":"BOOT-1",'
|
||||
'FT1 {"v":2,"type":"session_result","seq":2,"session":"BOOT-1",'
|
||||
'"uptime_ms":40120,"result":"FAIL","fail_code":1203,"imei":"860123456789012",'
|
||||
'"iccid":"","nfc_uid":"","start_time":null,"duration_ms":38070,"nodes":'
|
||||
'{"BOOT_AUDIO":"PASS","POWER_ADC":"PASS","AUDIO_LOOPBACK":"FAIL",'
|
||||
'"ESIM":"WAIT","DATA_CALL":"WAIT","NFC":"WAIT"}}'
|
||||
'"ESIM":"WAIT","DATA_CALL":"WAIT","NFC":"WAIT","GNSS":"WAIT"}}'
|
||||
)
|
||||
session.apply(result)
|
||||
self.assertEqual(session.result, "FAIL")
|
||||
@@ -107,37 +107,37 @@ class FactoryHostTests(unittest.TestCase):
|
||||
def test_ft1_rejects_node_name_mismatch(self):
|
||||
with self.assertRaises(ProtocolError):
|
||||
parse_ft1_line(
|
||||
'FT1 {"v":1,"type":"node_start","seq":2,"session":"BOOT-1",'
|
||||
'FT1 {"v":2,"type":"node_start","seq":2,"session":"BOOT-1",'
|
||||
'"uptime_ms":2100,"node":1,"name":"NFC"}'
|
||||
)
|
||||
|
||||
def test_ft1_control_messages(self):
|
||||
ready = parse_ft1_line(
|
||||
'FT1 {"v":1,"type":"device_ready","seq":1,"session":"BOOT-1",'
|
||||
'"uptime_ms":100,"fw":"FACTORY_TEST_1.0.0"}'
|
||||
'FT1 {"v":2,"type":"device_ready","seq":1,"session":"BOOT-1",'
|
||||
'"uptime_ms":100,"fw":"FACTORY_TEST_1.1.0"}'
|
||||
)
|
||||
ack = parse_ft1_line(
|
||||
'FT1 {"v":1,"type":"command_ack","seq":2,"session":"BOOT-1",'
|
||||
'FT1 {"v":2,"type":"command_ack","seq":2,"session":"BOOT-1",'
|
||||
'"uptime_ms":120,"command":"START","accepted":true}'
|
||||
)
|
||||
session = FT1Session()
|
||||
self.assertEqual(session.apply(ready), "设备已识别 FACTORY_TEST_1.0.0")
|
||||
self.assertEqual(session.apply(ready), "设备已识别 FACTORY_TEST_1.1.0")
|
||||
self.assertEqual(session.apply(ack), "START 已确认")
|
||||
self.assertTrue(session.device_ready_seen)
|
||||
self.assertTrue(session.start_ack_seen)
|
||||
|
||||
def test_ft1_status_snapshot_keeps_passed_nodes(self):
|
||||
first = parse_ft1_line(
|
||||
'FT1 {"v":1,"type":"status_snapshot","seq":1,"session":"BOOT-1",'
|
||||
'FT1 {"v":2,"type":"status_snapshot","seq":1,"session":"BOOT-1",'
|
||||
'"uptime_ms":100,"active_node":0,"nodes":{"BOOT_AUDIO":"WAIT",'
|
||||
'"POWER_ADC":"WAIT","AUDIO_LOOPBACK":"WAIT","ESIM":"WAIT",'
|
||||
'"DATA_CALL":"WAIT","NFC":"WAIT"}}'
|
||||
'"DATA_CALL":"WAIT","NFC":"WAIT","GNSS":"WAIT"}}'
|
||||
)
|
||||
second = parse_ft1_line(
|
||||
'FT1 {"v":1,"type":"status_snapshot","seq":2,"session":"BOOT-1",'
|
||||
'FT1 {"v":2,"type":"status_snapshot","seq":2,"session":"BOOT-1",'
|
||||
'"uptime_ms":600,"active_node":1,"nodes":{"BOOT_AUDIO":"PASS",'
|
||||
'"POWER_ADC":"WAIT","AUDIO_LOOPBACK":"WAIT","ESIM":"WAIT",'
|
||||
'"DATA_CALL":"WAIT","NFC":"WAIT"}}'
|
||||
'"DATA_CALL":"WAIT","NFC":"WAIT","GNSS":"WAIT"}}'
|
||||
)
|
||||
session = FT1Session()
|
||||
session.apply(first)
|
||||
@@ -145,6 +145,20 @@ class FactoryHostTests(unittest.TestCase):
|
||||
self.assertEqual(session.nodes["BOOT_AUDIO"], "PASS")
|
||||
self.assertEqual(session.current_node, "POWER_ADC")
|
||||
|
||||
def test_ft1_parses_low_threshold_gnss_result(self):
|
||||
message = parse_ft1_line(
|
||||
'FT1 {"v":2,"type":"node_result","seq":9,"session":"BOOT-1",'
|
||||
'"uptime_ms":30600,"imei":"860123456789012","iccid":"8986000000000000000",'
|
||||
'"nfc_uid":"04A1B2C3D4E5F6","node":6,"name":"GNSS","result":"PASS",'
|
||||
'"code":0,"elapsed_ms":800,"data":{"open_ret":0,"nmea_count":1,'
|
||||
'"sat_count":1,"fix_status":0,"search_ms":28500,'
|
||||
'"required_nmea_count":1,"required_sat_count":1}}'
|
||||
)
|
||||
session = FT1Session()
|
||||
session.apply(message)
|
||||
self.assertEqual(session.nodes["GNSS"], "PASS")
|
||||
self.assertEqual(session.node_details["GNSS"]["data"]["sat_count"], 1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user