This commit is contained in:
pdxlocations
2026-07-31 23:46:37 -07:00
parent 9eaf3ce1c4
commit d96435b7c4
14 changed files with 321 additions and 6 deletions
Binary file not shown.
+19
View File
@@ -103,6 +103,25 @@ class MicroMeshTests(unittest.TestCase):
self.assertEqual(len(interface.poll()), 1)
self.assertIs(interface.config_complete, True)
def test_poll_can_report_and_skip_bad_frames(self):
errors = []
bad = frame(b"\x12\x05no")
good = frame(FromRadio(config_complete_id=123).SerializeToString())
interface = SerialInterface(
FakeUART(bad + good),
on_error=lambda error, payload: errors.append((error, payload)),
)
interface.config_id = 123
messages = interface.poll()
self.assertEqual(len(messages), 1)
self.assertEqual(len(errors), 1)
self.assertEqual(errors[0][1], b"\x12\x05no")
self.assertIs(interface.config_complete, True)
def test_nested_decode_errors_include_the_field_path(self):
with self.assertRaisesRegex(DecodeError, "FromRadio.packet"):
FromRadio().ParseFromString(b"\x12\x03\x22\x05x")
def test_truncated_message_raises(self):
with self.assertRaises(DecodeError):
Data().ParseFromString(b"\x12\x05no")