ui: name REFRESH and the rest of the TS 102 223 command types (v2.7.17)
The proactive command log showed 'Cmd 0x01' for REFRESH: 0x01 was missing from both CMD_NAMES (frontend) and PROACTIVE_TYPE_NAMES (server), so the log fell back to the generic placeholder. Both tables now carry the full TS 102 223 9.4 command type list (REFRESH, MORE TIME, POLLING OFF, SET UP CALL, SEND SS/USSD/DTMF, GEOGRAPHICAL LOCATION REQUEST, SET UP IDLE MODE TEXT, PERFORM CARD APDU, POWER ON/OFF CARD, GET READER STATUS, RUN AT COMMAND, LANGUAGE NOTIFICATION, SERVICE SEARCH/INFORMATION, DECLARE SERVICE, frames, multimedia, COMMAND CONTAINER, ...). - tests: event_forms CMD_NAMES cases; new tests/test_proactive_names.py (REFRESH + spec spot checks).
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# coding=utf-8
|
||||
"""Tests for the proactive command type names (TS 102 223 §9.4).
|
||||
|
||||
The live card issues REFRESH (0x01) right after a Location status event; a
|
||||
missing entry makes the proactive log show the generic 'Cmd 0x01' fallback.
|
||||
"""
|
||||
|
||||
import unittest
|
||||
|
||||
from pysim_simple_server.server import PROACTIVE_TYPE_NAMES
|
||||
|
||||
|
||||
class ProactiveTypeNamesTests(unittest.TestCase):
|
||||
def test_refresh_is_named(self):
|
||||
self.assertEqual(PROACTIVE_TYPE_NAMES[0x01], 'REFRESH')
|
||||
|
||||
def test_common_types_match_the_spec(self):
|
||||
for value, name in [
|
||||
(0x02, 'MORE TIME'), (0x03, 'POLL INTERVAL'), (0x04, 'POLLING OFF'),
|
||||
(0x05, 'SET UP EVENT LIST'), (0x10, 'SET UP CALL'),
|
||||
(0x11, 'SEND SS'), (0x12, 'SEND USSD'),
|
||||
(0x13, 'SEND SHORT MESSAGE'), (0x14, 'SEND DTMF'),
|
||||
(0x15, 'LAUNCH BROWSER'), (0x16, 'GEOGRAPHICAL LOCATION REQUEST'),
|
||||
(0x21, 'DISPLAY TEXT'), (0x24, 'SELECT ITEM'), (0x25, 'SET UP MENU'),
|
||||
(0x26, 'PROVIDE LOCAL INFORMATION'), (0x27, 'TIMER MANAGEMENT'),
|
||||
(0x28, 'SET UP IDLE MODE TEXT'), (0x40, 'OPEN CHANNEL'),
|
||||
(0x44, 'GET CHANNEL STATUS'), (0x70, 'ACTIVATE'),
|
||||
]:
|
||||
self.assertEqual(PROACTIVE_TYPE_NAMES[value], name, hex(value))
|
||||
|
||||
def test_names_are_nonempty_strings(self):
|
||||
for value, name in PROACTIVE_TYPE_NAMES.items():
|
||||
self.assertIsInstance(value, int)
|
||||
self.assertTrue(isinstance(name, str) and name, hex(value))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user