From f4040d2f919f35a23ca75be444c93c0f599a6eab Mon Sep 17 00:00:00 2001 From: highlander Date: Tue, 8 Sep 2026 18:27:12 -0600 Subject: [PATCH] test(ping): preserve message presence after a debug screen read --- tests/test_msg_ping.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/test_msg_ping.py b/tests/test_msg_ping.py index 507c197a..16c10042 100644 --- a/tests/test_msg_ping.py +++ b/tests/test_msg_ping.py @@ -27,6 +27,25 @@ class TestPing(common.KeepKeyTest): + def test_protected_ping_preserves_message_presence_after_debug_read(self): + self.requires_firmware("7.15.0") + for message in (None, '', 'ping response'): + with self.subTest(message=message): + request = proto.Ping(button_protection=True) + if message is not None: + request.message = message + response = self.client.call_raw(request) + self.assertIsInstance(response, proto.ButtonRequest) + # Read the screen while the normal response is suspended. + self.client.debug.read_layout() + self.client.debug.press_yes() + response = self.client.call_raw(proto.ButtonAck()) + self.assertIsInstance(response, proto.Success) + self.assertEqual(response.HasField('message'), message is not None) + if message is not None: + self.assertEqual(response.message, message) + + def test_ping(self): self.setup_mnemonic_pin_passphrase() self.client.clear_session()