feat: automate FT1 factory test status reporting

This commit is contained in:
chenjintao
2026-09-24 11:21:40 +08:00
parent 8b499948dd
commit 06b0eaaf70
11 changed files with 461 additions and 38 deletions
+34
View File
@@ -93,6 +93,40 @@ class FactoryHostTests(unittest.TestCase):
'"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"}'
)
ack = parse_ft1_line(
'FT1 {"v":1,"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(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",'
'"uptime_ms":100,"active_node":0,"nodes":{"BOOT_AUDIO":"WAIT",'
'"POWER_ADC":"WAIT","AUDIO_LOOPBACK":"WAIT","ESIM":"WAIT",'
'"DATA_CALL":"WAIT","NFC":"WAIT"}}'
)
second = parse_ft1_line(
'FT1 {"v":1,"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"}}'
)
session = FT1Session()
session.apply(first)
session.apply(second)
self.assertEqual(session.nodes["BOOT_AUDIO"], "PASS")
self.assertEqual(session.current_node, "POWER_ADC")
if __name__ == "__main__":
unittest.main()