Seed socket payloads with opt (communicate factory) + host_probe4

This commit is contained in:
kfj001 committed 2026-10-16 00:55:50 +00:00
1 parent 213a0518d6
commit bdc98484a9
5 files changed
+180 -18

No files matched your search

+11 -13
View File
@@ -81,30 +81,28 @@ class TestEnvelope(unittest.TestCase):
"crc", "dataArea"],
)
self.assertNotIn("data", d)
# socket payload is always seeded with the operation type first
self.assertEqual(d["dataArea"], {"opt": 0, "update": 2})
def test_no_data_means_seven_keys(self):
def test_no_data_still_carries_opt(self):
env = direct_connect_request(CommunicationCmd.BMS, SN, data=None)
d = env.to_dict()
self.assertEqual(
list(d),
["cmdType", "equipNo", "type", "timeStamp", "snno", "len", "crc"],
)
self.assertEqual(env.length, 0)
self.assertEqual(env.crc, "")
self.assertIn("dataArea", d)
self.assertEqual(d["dataArea"], {"opt": 0})
self.assertEqual(env.length, len(b'{"opt":0}'))
self.assertTrue(env.crc)
def test_empty_map_means_no_data_area(self):
def test_empty_map_still_carries_opt(self):
env = direct_connect_request(CommunicationCmd.BMS, SN, data={})
self.assertNotIn("dataArea", env.to_dict())
self.assertEqual(env.length, 0)
self.assertEqual(env.crc, "")
self.assertEqual(env.to_dict()["dataArea"], {"opt": 0})
def test_len_crc_auto_uppercase(self):
env = direct_connect_request(
CommunicationCmd.DEVICE_APOWER_INFO, SN, data={"update": 2})
self.assertEqual(env.length, len(b'{"update":2}'))
self.assertEqual(env.length, len(b'{"opt":0,"update":2}'))
import zlib
self.assertEqual(
env.crc, format(zlib.crc32(b'{"update":2}'), "X"))
env.crc, format(zlib.crc32(b'{"opt":0,"update":2}'), "X"))
self.assertEqual(env.crc, env.crc.upper())
def test_int_fields(self):