fixes
This commit is contained in:
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user