Show Location Status value in EVENT DOWNLOAD list summaries

- _build_summary: fold cmd.location_status (Normal/Limited/No service)
  into the 'Location status' event entry, e.g. 'Location status: Normal
  service' (the detail view already showed it)
- tests: summary assertions for the Normal/No-service vectors
- Backend-only, no version bump
This commit is contained in:
catarrh committed 2026-09-19 00:43:58 +03:00
1 parent 04443878a7
commit 2c373f50b7
2 files changed
+12 -2

No files matched your search

+10 -2
View File
@@ -3746,8 +3746,16 @@ def _build_summary(result):
parts.append(f"SMSC {cmd['smsc']}") parts.append(f"SMSC {cmd['smsc']}")
if cmd.get('tp_da'): if cmd.get('tp_da'):
parts.append(f"DA {cmd['tp_da']}") parts.append(f"DA {cmd['tp_da']}")
if cmd.get('events'): events = list(cmd.get('events') or [])
parts.append(', '.join(cmd['events'])) status = cmd.get('location_status')
if status and 'Location status' in events:
# Fold the decoded Location Status value into its event entry
# (Normal service / Limited service / No service).
events[events.index('Location status')] = f'Location status: {status}'
elif status:
events.append(f'Location status: {status}')
if events:
parts.append(', '.join(events))
if cmd.get('address'): if cmd.get('address'):
parts.append(f"to {cmd['address']}") parts.append(f"to {cmd['address']}")
duration = cmd.get('duration') duration = cmd.get('duration')
+2
View File
@@ -474,12 +474,14 @@ class TestEventDownload(unittest.TestCase):
self.assertEqual(cmd['type'], 'EVENT DOWNLOAD') self.assertEqual(cmd['type'], 'EVENT DOWNLOAD')
self.assertEqual(cmd['events'], ['Location status']) self.assertEqual(cmd['events'], ['Location status'])
self.assertEqual(cmd['location_status'], 'Normal service') self.assertEqual(cmd['location_status'], 'Normal service')
self.assertEqual(r['summary'], 'Location status: Normal service')
def test_event_no_service(self): def test_event_no_service(self):
r = decode_message(bytes.fromhex( r = decode_message(bytes.fromhex(
'80C200000CD60A190103020282811B01029000')) '80C200000CD60A190103020282811B01029000'))
self.assertEqual(r['cmd']['events'], ['Location status']) self.assertEqual(r['cmd']['events'], ['Location status'])
self.assertEqual(r['cmd']['location_status'], 'No service') self.assertEqual(r['cmd']['location_status'], 'No service')
self.assertEqual(r['summary'], 'Location status: No service')
def test_location_status_with_info(self): def test_location_status_with_info(self):
r = decode_message(bytes.fromhex( r = decode_message(bytes.fromhex(