From 122f6c8085025f0bcc90b46141d02004d40cf410 Mon Sep 17 00:00:00 2001 From: matejcik Date: Wed, 28 Aug 2019 17:05:01 +0200 Subject: [PATCH] tests: update shamir tests for setup_client markers --- .../test_msg_recoverydevice_supershamir.py | 3 + ...t_msg_recoverydevice_supershamir_dryrun.py | 6 +- .../test_msg_resetdevice_supershamir.py | 55 ++++++++++--------- .../test_shamir_reset_recovery_groups.py | 1 + 4 files changed, 34 insertions(+), 31 deletions(-) diff --git a/tests/device_tests/test_msg_recoverydevice_supershamir.py b/tests/device_tests/test_msg_recoverydevice_supershamir.py index e6078876ee..b7f36a4caf 100644 --- a/tests/device_tests/test_msg_recoverydevice_supershamir.py +++ b/tests/device_tests/test_msg_recoverydevice_supershamir.py @@ -67,6 +67,7 @@ def enter_all_shares(debug, shares): debug.press_yes() +@pytest.mark.setup_client(uninitialized=True) def test_recover_no_pin_no_passphrase(client): debug = client.debug @@ -89,6 +90,7 @@ def test_recover_no_pin_no_passphrase(client): assert client.features.passphrase_protection is False +@pytest.mark.setup_client(uninitialized=True) def test_abort(client): debug = client.debug @@ -108,6 +110,7 @@ def test_abort(client): assert client.features.initialized is False +@pytest.mark.setup_client(uninitialized=True) def test_noabort(client): debug = client.debug diff --git a/tests/device_tests/test_msg_recoverydevice_supershamir_dryrun.py b/tests/device_tests/test_msg_recoverydevice_supershamir_dryrun.py index 415ae8e979..bda34d3959 100644 --- a/tests/device_tests/test_msg_recoverydevice_supershamir_dryrun.py +++ b/tests/device_tests/test_msg_recoverydevice_supershamir_dryrun.py @@ -3,8 +3,6 @@ import pytest from trezorlib import device, messages from trezorlib.exceptions import TrezorFailure -from .conftest import setup_client - pytestmark = pytest.mark.skip_t1 SHARES_20_2of3_2of3_GROUPS = [ @@ -23,7 +21,7 @@ INVALID_SHARES_20_2of3_2of3_GROUPS = [ ] -@setup_client(mnemonic=SHARES_20_2of3_2of3_GROUPS[1:5], passphrase=False) +@pytest.mark.setup_client(mnemonic=SHARES_20_2of3_2of3_GROUPS[1:5], passphrase=False) def test_2of3_dryrun(client): debug = client.debug @@ -50,7 +48,7 @@ def test_2of3_dryrun(client): ) -@setup_client(mnemonic=SHARES_20_2of3_2of3_GROUPS[1:5], passphrase=True) +@pytest.mark.setup_client(mnemonic=SHARES_20_2of3_2of3_GROUPS[1:5], passphrase=True) def test_2of3_invalid_seed_dryrun(client): debug = client.debug diff --git a/tests/device_tests/test_msg_resetdevice_supershamir.py b/tests/device_tests/test_msg_resetdevice_supershamir.py index 0aadfc5a93..ea493aa75a 100644 --- a/tests/device_tests/test_msg_resetdevice_supershamir.py +++ b/tests/device_tests/test_msg_resetdevice_supershamir.py @@ -14,7 +14,8 @@ EXTERNAL_ENTROPY = b"zlutoucky kun upel divoke ody" * 2 @pytest.mark.skip_t1 class TestMsgResetDeviceT2(TrezorTest): # TODO: test with different options - def test_reset_device_supershamir(self): + @pytest.mark.setup_client(uninitialized=True) + def test_reset_device_supershamir(self, client): strength = 128 member_threshold = 3 all_mnemonics = [] @@ -23,53 +24,53 @@ class TestMsgResetDeviceT2(TrezorTest): # Confirm Reset btn_code = yield assert btn_code == B.ResetDevice - self.client.debug.press_yes() + client.debug.press_yes() # Backup your seed btn_code = yield assert btn_code == B.ResetDevice - self.client.debug.press_yes() + client.debug.press_yes() # Confirm warning btn_code = yield assert btn_code == B.ResetDevice - self.client.debug.press_yes() + client.debug.press_yes() # shares info btn_code = yield assert btn_code == B.ResetDevice - self.client.debug.press_yes() + client.debug.press_yes() # Set & Confirm number of groups btn_code = yield assert btn_code == B.ResetDevice - self.client.debug.press_yes() + client.debug.press_yes() # threshold info btn_code = yield assert btn_code == B.ResetDevice - self.client.debug.press_yes() + client.debug.press_yes() # Set & confirm group threshold value btn_code = yield assert btn_code == B.ResetDevice - self.client.debug.press_yes() + client.debug.press_yes() for _ in range(5): # Set & Confirm number of share btn_code = yield assert btn_code == B.ResetDevice - self.client.debug.press_yes() + client.debug.press_yes() # Set & confirm share threshold value btn_code = yield assert btn_code == B.ResetDevice - self.client.debug.press_yes() + client.debug.press_yes() # Confirm show seeds btn_code = yield assert btn_code == B.ResetDevice - self.client.debug.press_yes() + client.debug.press_yes() # show & confirm shares for all groups for g in range(5): @@ -81,33 +82,33 @@ class TestMsgResetDeviceT2(TrezorTest): # mnemonic phrases # 20 word over 6 pages for strength 128, 33 words over 9 pages for strength 256 for i in range(6): - words.extend(self.client.debug.read_reset_word().split()) + words.extend(client.debug.read_reset_word().split()) if i < 5: - self.client.debug.swipe_down() + client.debug.swipe_down() else: # last page is confirmation - self.client.debug.press_yes() + client.debug.press_yes() # check share for _ in range(3): - index = self.client.debug.read_reset_word_pos() - self.client.debug.input(words[index]) + index = client.debug.read_reset_word_pos() + client.debug.input(words[index]) all_mnemonics.extend([" ".join(words)]) # Confirm continue to next share btn_code = yield assert btn_code == B.Success - self.client.debug.press_yes() + client.debug.press_yes() # safety warning btn_code = yield assert btn_code == B.Success - self.client.debug.press_yes() + client.debug.press_yes() os_urandom = mock.Mock(return_value=EXTERNAL_ENTROPY) - with mock.patch("os.urandom", os_urandom), self.client: - self.client.set_expected_responses( + with mock.patch("os.urandom", os_urandom), client: + client.set_expected_responses( [ proto.ButtonRequest(code=B.ResetDevice), proto.EntropyRequest(), @@ -193,11 +194,11 @@ class TestMsgResetDeviceT2(TrezorTest): proto.Features(), ] ) - self.client.set_input_flow(input_flow) + client.set_input_flow(input_flow) # No PIN, no passphrase, don't display random device.reset( - self.client, + client, display_random=False, strength=strength, passphrase_protection=False, @@ -208,17 +209,17 @@ class TestMsgResetDeviceT2(TrezorTest): ) # generate secret locally - internal_entropy = self.client.debug.state().reset_entropy + internal_entropy = client.debug.state().reset_entropy secret = generate_entropy(strength, internal_entropy, EXTERNAL_ENTROPY) # validate that all combinations will result in the correct master secret validate_mnemonics(all_mnemonics, member_threshold, secret) # Check if device is properly initialized - assert self.client.features.initialized is True - assert self.client.features.needs_backup is False - assert self.client.features.pin_protection is False - assert self.client.features.passphrase_protection is False + assert client.features.initialized is True + assert client.features.needs_backup is False + assert client.features.pin_protection is False + assert client.features.passphrase_protection is False def validate_mnemonics(mnemonics, threshold, expected_ems): diff --git a/tests/device_tests/test_shamir_reset_recovery_groups.py b/tests/device_tests/test_shamir_reset_recovery_groups.py index 75aa910109..ed6d8f2e88 100644 --- a/tests/device_tests/test_shamir_reset_recovery_groups.py +++ b/tests/device_tests/test_shamir_reset_recovery_groups.py @@ -6,6 +6,7 @@ from trezorlib.tools import parse_path @pytest.mark.skip_t1 +@pytest.mark.setup_client(uninitialized=True) def test_reset_recovery(client): mnemonics = reset(client) address_before = btc.get_address(client, "Bitcoin", parse_path("44'/0'/0'/0/0"))