import argparse import unittest from h8536.emulator.rx_probe import frame_checksum, frame_checksum_ok, parse_frame class EmulatorRxProbeTest(unittest.TestCase): def test_parse_frame_accepts_five_bytes_and_appends_checksum(self): frame = parse_frame("04 00 00 40 00") self.assertEqual(frame, bytes.fromhex("04000040001E")) self.assertTrue(frame_checksum_ok(frame)) def test_parse_frame_accepts_compact_checked_frame(self): frame = parse_frame("0780684030C5") self.assertEqual(frame, bytes.fromhex("0780684030C5")) self.assertEqual(frame_checksum(frame), 0xC5) self.assertTrue(frame_checksum_ok(frame)) def test_parse_frame_rejects_wrong_length(self): with self.assertRaises(argparse.ArgumentTypeError): parse_frame("04 00 00 40") if __name__ == "__main__": unittest.main()