From da6ce3acb81c70d582c9bd5adde198e3d259199a Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Fri, 7 Mar 2014 21:51:01 +0100 Subject: [PATCH] add test for failed word in recovery device --- tests/test_msg_recoverydevice.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/test_msg_recoverydevice.py b/tests/test_msg_recoverydevice.py index 85f3cb5..6919a69 100644 --- a/tests/test_msg_recoverydevice.py +++ b/tests/test_msg_recoverydevice.py @@ -115,6 +115,28 @@ class TestDeviceRecovery(common.TrezorTest): resp = self.client.call_raw(proto.Ping(pin_protection=True)) self.assertIsInstance(resp, proto.Success) + def test_word_fail(self): + ret = self.client.call_raw(proto.RecoveryDevice(word_count=12, + passphrase_protection=False, + pin_protection=False, + label='label', + language='english', + enforce_wordlist=True)) + + self.assertIsInstance(ret, proto.ButtonRequest) + self.client.debug.press_yes() + ret = self.client.call_raw(proto.ButtonAck()) + + for _ in range(int(12 * 1.5)): + self.assertIsInstance(ret, proto.WordRequest) + (word, pos) = self.client.debug.read_recovery_word() + + if pos != 0: + ret = self.client.call_raw(proto.WordAck('kwyjibo')) + self.assertIsInstance(ret, proto.Failure) + else: + ret = self.client.call_raw(proto.WordAck(word=word)) + def test_pin_fail(self): ret = self.client.call_raw(proto.RecoveryDevice(word_count=12, passphrase_protection=True,