From cdf55d2fac2fb4ab06405264d6d8bcea10beef58 Mon Sep 17 00:00:00 2001 From: matejcik Date: Wed, 3 Feb 2021 12:35:37 +0100 Subject: [PATCH] tests: get rid of skip_ui (fixes #1409) --- tests/device_tests/test_autolock.py | 1 - tests/device_tests/test_cancel.py | 2 - tests/device_tests/test_debuglink.py | 1 - tests/device_tests/test_msg_applysettings.py | 1 - .../test_msg_authorize_coinjoin.py | 1 - tests/device_tests/test_msg_getaddress.py | 3 - .../test_msg_getownershipproof.py | 3 - tests/device_tests/test_msg_getpublickey.py | 2 - .../test_msg_getpublickey_curve.py | 2 - tests/device_tests/test_msg_ping.py | 3 - tests/device_tests/test_msg_signtx.py | 7 - .../test_msg_signtx_mixed_inputs.py | 6 - .../device_tests/test_msg_signtx_peercoin.py | 2 - .../device_tests/test_msg_signtx_prevhash.py | 3 - .../test_msg_signtx_replacement.py | 5 - tests/device_tests/test_msg_signtx_zcash.py | 2 - .../test_msg_stellar_get_address.py | 1 - tests/device_tests/test_op_return.py | 2 - .../device_tests/test_reset_recovery_bip39.py | 1 - .../test_reset_recovery_slip39_advanced.py | 1 - .../test_reset_recovery_slip39_basic.py | 6 +- tests/device_tests/test_session.py | 5 - .../test_session_id_and_passphrase.py | 12 -- tests/ui_tests/fixtures.json | 124 ++++++++++++++++++ 24 files changed, 129 insertions(+), 67 deletions(-) diff --git a/tests/device_tests/test_autolock.py b/tests/device_tests/test_autolock.py index 25350aaa2..2b2176929 100644 --- a/tests/device_tests/test_autolock.py +++ b/tests/device_tests/test_autolock.py @@ -91,7 +91,6 @@ def test_autolock_default_value(client): assert client.features.auto_lock_delay_ms == 60 * 10 * 1000 -@pytest.mark.skip_ui @pytest.mark.parametrize( "seconds", [0, 1, 9, 536871, 2 ** 22], diff --git a/tests/device_tests/test_cancel.py b/tests/device_tests/test_cancel.py index 03391bc86..2000b349e 100644 --- a/tests/device_tests/test_cancel.py +++ b/tests/device_tests/test_cancel.py @@ -21,8 +21,6 @@ from trezorlib.exceptions import Cancelled from ..common import TEST_ADDRESS_N -pytestmark = pytest.mark.skip_ui - @pytest.mark.parametrize( "message", diff --git a/tests/device_tests/test_debuglink.py b/tests/device_tests/test_debuglink.py index 9e433de02..7aad188b9 100644 --- a/tests/device_tests/test_debuglink.py +++ b/tests/device_tests/test_debuglink.py @@ -51,7 +51,6 @@ class TestDebuglink: assert isinstance(resp, messages.Address) -@pytest.mark.skip_ui @pytest.mark.skip_t1 def test_softlock_instability(client): def load_device(): diff --git a/tests/device_tests/test_msg_applysettings.py b/tests/device_tests/test_msg_applysettings.py index 06c908822..0431829ae 100644 --- a/tests/device_tests/test_msg_applysettings.py +++ b/tests/device_tests/test_msg_applysettings.py @@ -151,7 +151,6 @@ class TestMsgApplysettings: b"TOIf\x80\x00\x80\x00~\x00\x00\x00\xed\xd2\xcb\r\x83@\x10D\xc1^.\xde#!\xac31\x99\x10\x8aC%\x14~\x16\x92Y9\x02WI3\x01<\xf5cI2d\x1es(\xe1[\xdbn\xba\xca\xe8s7\xa4\xd5\xd4\xb3\x13\xbdw\xf6:\xf3\xd1\xe7%\xc7]\xdd_\xb3\x9e\x9f\x9e\x9fN\xed\xaaE\xef\xdc\xcf$D\xa7\xa4X\r\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0OV", ], ) - @pytest.mark.skip_ui @pytest.mark.skip_t1 def test_apply_homescreen_toif_fail(self, client, toif_data): with pytest.raises(exceptions.TrezorFailure), client: diff --git a/tests/device_tests/test_msg_authorize_coinjoin.py b/tests/device_tests/test_msg_authorize_coinjoin.py index 489f07a82..1ae16436d 100644 --- a/tests/device_tests/test_msg_authorize_coinjoin.py +++ b/tests/device_tests/test_msg_authorize_coinjoin.py @@ -423,7 +423,6 @@ def test_cancel_authorization(client): ) -@pytest.mark.skip_ui def test_multisession_authorization(client): # Authorize CoinJoin with www.example1.com in session 1. btc.authorize_coinjoin( diff --git a/tests/device_tests/test_msg_getaddress.py b/tests/device_tests/test_msg_getaddress.py index e3d557e31..10cdaadbe 100644 --- a/tests/device_tests/test_msg_getaddress.py +++ b/tests/device_tests/test_msg_getaddress.py @@ -33,7 +33,6 @@ def getmultisig(chain, nr, xpubs, signatures=[b"", b"", b""]): ) -@pytest.mark.skip_ui class TestMsgGetaddress: def test_btc(self, client): assert ( @@ -219,7 +218,6 @@ class TestMsgGetaddress: @pytest.mark.skip_t1 -@pytest.mark.skip_ui def test_invalid_path(client): with pytest.raises(TrezorFailure, match="Forbidden key path"): # slip44 id mismatch @@ -276,7 +274,6 @@ def test_unknown_path_t1(client): @pytest.mark.altcoin -@pytest.mark.skip_ui def test_crw(client): assert ( btc.get_address(client, "Crown", parse_path("44'/72'/0'/0/0")) diff --git a/tests/device_tests/test_msg_getownershipproof.py b/tests/device_tests/test_msg_getownershipproof.py index 5757e2865..b4abd736b 100644 --- a/tests/device_tests/test_msg_getownershipproof.py +++ b/tests/device_tests/test_msg_getownershipproof.py @@ -23,7 +23,6 @@ from trezorlib.tools import parse_path pytestmark = pytest.mark.skip_t1 -@pytest.mark.skip_ui def test_ownership_id(client): ownership_id = btc.get_ownership_id( client, @@ -37,7 +36,6 @@ def test_ownership_id(client): ) -@pytest.mark.skip_ui def test_p2wpkh_ownership_proof(client): ownership_proof, _ = btc.get_ownership_proof( client, @@ -51,7 +49,6 @@ def test_p2wpkh_ownership_proof(client): ) -@pytest.mark.skip_ui def test_fake_ownership_id(client): with pytest.raises(TrezorFailure, match="Invalid ownership identifier"): btc.get_ownership_proof( diff --git a/tests/device_tests/test_msg_getpublickey.py b/tests/device_tests/test_msg_getpublickey.py index d8072f6c1..5d0b59dc9 100644 --- a/tests/device_tests/test_msg_getpublickey.py +++ b/tests/device_tests/test_msg_getpublickey.py @@ -22,8 +22,6 @@ from trezorlib.tools import parse_path from .. import bip32 -pytestmark = pytest.mark.skip_ui - VECTORS_BITCOIN = ( # coin_name, xpub_magic, path, xpub ( "Bitcoin", diff --git a/tests/device_tests/test_msg_getpublickey_curve.py b/tests/device_tests/test_msg_getpublickey_curve.py index 3b034c696..5c34aa9cc 100644 --- a/tests/device_tests/test_msg_getpublickey_curve.py +++ b/tests/device_tests/test_msg_getpublickey_curve.py @@ -20,8 +20,6 @@ from trezorlib import btc from trezorlib.exceptions import TrezorFailure from trezorlib.tools import parse_path -pytestmark = pytest.mark.skip_ui - PATH_PRIVATE = parse_path("m/17h/0h/1h/2h/3h") PATH_PUBLIC = parse_path("m/17h/0h/1h/2h/3h/42") diff --git a/tests/device_tests/test_msg_ping.py b/tests/device_tests/test_msg_ping.py index b7a99fec5..b9a85b12b 100644 --- a/tests/device_tests/test_msg_ping.py +++ b/tests/device_tests/test_msg_ping.py @@ -14,12 +14,9 @@ # You should have received a copy of the License along with this library. # If not, see . -import pytest - from trezorlib import messages -@pytest.mark.skip_ui def test_ping(client): with client: client.set_expected_responses([messages.Success()]) diff --git a/tests/device_tests/test_msg_signtx.py b/tests/device_tests/test_msg_signtx.py index e253b1ac7..8cd15f95f 100644 --- a/tests/device_tests/test_msg_signtx.py +++ b/tests/device_tests/test_msg_signtx.py @@ -430,7 +430,6 @@ class TestMsgSigntx: == "6f9775545830731a316a4c2a39515b1890e9c8ab0f9e21e7c6a6ca2c1499116d" ) - @pytest.mark.skip_ui @pytest.mark.slow def test_lots_of_inputs(self, client): # Tests if device implements serialization of len(inputs) correctly @@ -458,7 +457,6 @@ class TestMsgSigntx: == "f90cdc2224366312be28166e2afe198ece7a60e86e25f5a50f5b14d811713da8" ) - @pytest.mark.skip_ui @pytest.mark.slow def test_lots_of_outputs(self, client): # Tests if device implements serialization of len(outputs) correctly @@ -1131,7 +1129,6 @@ class TestMsgSigntx: prev_txes=TX_CACHE_TESTNET, ) - @pytest.mark.skip_ui def test_not_enough_vouts(self, client): prev_tx = TX_CACHE_MAINNET[TXHASH_157041] @@ -1187,7 +1184,6 @@ class TestMsgSigntx: ("branch_id", 13), ), ) - @pytest.mark.skip_ui def test_prevtx_forbidden_fields(self, client, field, value): inp0 = messages.TxInputType( address_n=parse_path("44h/0h/0h/0/0"), @@ -1215,7 +1211,6 @@ class TestMsgSigntx: "field, value", (("expiry", 9), ("timestamp", 42), ("version_group_id", 69), ("branch_id", 13)), ) - @pytest.mark.skip_ui def test_signtx_forbidden_fields(self, client, field, value): inp0 = messages.TxInputType( address_n=parse_path("44h/0h/0h/0/0"), @@ -1242,7 +1237,6 @@ class TestMsgSigntx: "script_type", (messages.InputScriptType.SPENDADDRESS, messages.InputScriptType.EXTERNAL), ) - @pytest.mark.skip_ui def test_incorrect_input_script_type(self, client, script_type): address_n = parse_path("44'/1'/0'/0/0") attacker_multisig_public_key = bytes.fromhex( @@ -1298,7 +1292,6 @@ class TestMsgSigntx: messages.OutputScriptType.PAYTOSCRIPTHASH, ), ) - @pytest.mark.skip_ui def test_incorrect_output_script_type(self, client, script_type): address_n = parse_path("44'/1'/0'/0/0") attacker_multisig_public_key = bytes.fromhex( diff --git a/tests/device_tests/test_msg_signtx_mixed_inputs.py b/tests/device_tests/test_msg_signtx_mixed_inputs.py index 1316ef0e8..e6c9e78f3 100644 --- a/tests/device_tests/test_msg_signtx_mixed_inputs.py +++ b/tests/device_tests/test_msg_signtx_mixed_inputs.py @@ -14,8 +14,6 @@ # You should have received a copy of the License along with this library. # If not, see . -import pytest - from trezorlib import btc, messages from trezorlib.tools import parse_path @@ -37,7 +35,6 @@ TXHASH_31bc1c = bytes.fromhex( ) -@pytest.mark.skip_ui def test_non_segwit_segwit_inputs(client): # First is non-segwit, second is segwit. @@ -80,7 +77,6 @@ def test_non_segwit_segwit_inputs(client): ) -@pytest.mark.skip_ui def test_segwit_non_segwit_inputs(client): # First is segwit, second is non-segwit. @@ -123,7 +119,6 @@ def test_segwit_non_segwit_inputs(client): ) -@pytest.mark.skip_ui def test_segwit_non_segwit_segwit_inputs(client): # First is segwit, second is non-segwit and third is segwit again. @@ -177,7 +172,6 @@ def test_segwit_non_segwit_segwit_inputs(client): ) -@pytest.mark.skip_ui def test_non_segwit_segwit_non_segwit_inputs(client): # First is non-segwit, second is segwit and third is non-segwit again. diff --git a/tests/device_tests/test_msg_signtx_peercoin.py b/tests/device_tests/test_msg_signtx_peercoin.py index 74c002130..e13509e3b 100644 --- a/tests/device_tests/test_msg_signtx_peercoin.py +++ b/tests/device_tests/test_msg_signtx_peercoin.py @@ -65,7 +65,6 @@ def test_timestamp_included(client): @pytest.mark.altcoin @pytest.mark.peercoin -@pytest.mark.skip_ui def test_timestamp_missing(client): inp1 = messages.TxInputType( address_n=parse_path("m/44'/6'/0'/0/0"), @@ -104,7 +103,6 @@ def test_timestamp_missing(client): @pytest.mark.altcoin @pytest.mark.peercoin -@pytest.mark.skip_ui def test_timestamp_missing_prevtx(client): inp1 = messages.TxInputType( address_n=parse_path("m/44'/6'/0'/0/0"), diff --git a/tests/device_tests/test_msg_signtx_prevhash.py b/tests/device_tests/test_msg_signtx_prevhash.py index 28cc47e21..4b7d6af9d 100644 --- a/tests/device_tests/test_msg_signtx_prevhash.py +++ b/tests/device_tests/test_msg_signtx_prevhash.py @@ -80,7 +80,6 @@ def _check_error_message(value: bytes, model: str, message: str): assert message.endswith("Encountered invalid prevhash") -@pytest.mark.skip_ui @pytest.mark.parametrize("prev_hash", (None, b"", b"x", b"hello world", b"x" * 33)) def test_invalid_prev_hash(client, prev_hash): inp1 = messages.TxInputType( @@ -101,7 +100,6 @@ def test_invalid_prev_hash(client, prev_hash): _check_error_message(prev_hash, client.features.model, e.value.message) -@pytest.mark.skip_ui @pytest.mark.parametrize("prev_hash", (None, b"", b"x", b"hello world", b"x" * 33)) def test_invalid_prev_hash_attack(client, prev_hash): # prepare input with a valid prev-hash @@ -144,7 +142,6 @@ def test_invalid_prev_hash_attack(client, prev_hash): _check_error_message(prev_hash, client.features.model, e.value.message) -@pytest.mark.skip_ui @pytest.mark.parametrize("prev_hash", (None, b"", b"x", b"hello world", b"x" * 33)) def test_invalid_prev_hash_in_prevtx(client, prev_hash): cache = TxCache("Bitcoin") diff --git a/tests/device_tests/test_msg_signtx_replacement.py b/tests/device_tests/test_msg_signtx_replacement.py index 8d00eb928..24f3a1f7f 100644 --- a/tests/device_tests/test_msg_signtx_replacement.py +++ b/tests/device_tests/test_msg_signtx_replacement.py @@ -561,7 +561,6 @@ def test_tx_meld(client): ) -@pytest.mark.skip_ui def test_attack_steal_change(client): # Attempt to steal amount equivalent to the change in the original transaction by # hiding the fact that an output in the original transaction is a change-output. @@ -633,7 +632,6 @@ def test_attack_steal_change(client): @pytest.mark.skip_t1 -@pytest.mark.skip_ui def test_attack_false_internal(client): # Falsely claim that an external input is internal in the original transaction. # If this were possible, it would allow an attacker to make it look like the @@ -685,7 +683,6 @@ def test_attack_false_internal(client): ) -@pytest.mark.skip_ui def test_attack_fake_int_input_amount(client): # Give a fake input amount for an original internal input while giving the correct # amount for the replacement input. If an attacker could increase the amount of an @@ -741,7 +738,6 @@ def test_attack_fake_int_input_amount(client): @pytest.mark.skip_t1 -@pytest.mark.skip_ui def test_attack_fake_ext_input_amount(client): # Give a fake input amount for an original external input while giving the correct # amount for the replacement input. If an attacker could decrease the amount of an @@ -812,7 +808,6 @@ def test_attack_fake_ext_input_amount(client): ) -@pytest.mark.skip_ui def test_p2wpkh_invalid_signature(client): # Ensure that transaction replacement fails when the original signature is invalid. diff --git a/tests/device_tests/test_msg_signtx_zcash.py b/tests/device_tests/test_msg_signtx_zcash.py index 16169f7c2..b94ec374e 100644 --- a/tests/device_tests/test_msg_signtx_zcash.py +++ b/tests/device_tests/test_msg_signtx_zcash.py @@ -56,7 +56,6 @@ TXHASH_v4 = bytes.fromhex( @pytest.mark.altcoin @pytest.mark.zcash class TestMsgSigntxZcash: - @pytest.mark.skip_ui def test_v3_not_supported(self, client): # prevout: aaf51e4606c264e47e5c42c958fe4cf1539c5172684721e38e69f4ef634d75dc:1 # input 1: 3.0 TAZ @@ -142,7 +141,6 @@ class TestMsgSigntxZcash: == "0400008085202f890168039326c180fa7b1e999392e25a3ec6a8aec83c11b787ddb1746922020682e3000000006b483045022100f28298891f48706697a6f898ac18e39ce2c7cebe547b585d51cc22d80b1b21a602201a807b8a18544832d95d1e3ada82c0617bc6d97d3f24d1fb4801ac396647aa880121030e669acac1f280d1ddf441cd2ba5e97417bf2689e4bbec86df4f831bf9f7ffd0ffffffff016c9be111000000001976a9145b157a678a10021243307e4bb58f36375aa80e1088ac00000000000000000000000000000000000000" ) - @pytest.mark.skip_ui def test_version_group_id_missing(self, client): inp1 = proto.TxInputType( # tmQoJ3PTXgQLaRRZZYT6xk8XtjRbr2kCqwu diff --git a/tests/device_tests/test_msg_stellar_get_address.py b/tests/device_tests/test_msg_stellar_get_address.py index 476ac0f01..dd2c2c2b4 100644 --- a/tests/device_tests/test_msg_stellar_get_address.py +++ b/tests/device_tests/test_msg_stellar_get_address.py @@ -44,7 +44,6 @@ class TestMsgStellarGetAddress: ) assert address == "GBAW5XGWORWVFE2XTJYDTLDHXTY2Q2MO73HYCGB3XMFMQ562Q2W2GJQX" - @pytest.mark.skip_ui def test_stellar_get_address_fail(self, client): with pytest.raises(TrezorFailure) as exc: stellar.get_address(client, parse_path("m/0/1")) diff --git a/tests/device_tests/test_op_return.py b/tests/device_tests/test_op_return.py index e56086733..74691f33a 100644 --- a/tests/device_tests/test_op_return.py +++ b/tests/device_tests/test_op_return.py @@ -83,7 +83,6 @@ class TestOpReturn: == "010000000182488650ef25a58fef6788bd71b8212038d7f2bbe4750bc7bcb44701e85ef6d5000000006b483045022100bc36e1227b334e856c532bbef86d30a96823a5f2461738f4dbf969dfbcf1b40b022078c5353ec9a4bce2bb05bd1ec466f2ab379c1aad926e208738407bba4e09784b012103330236b68aa6fdcaca0ea72e11b360c84ed19a338509aa527b678a7ec9076882ffffffff0260cc0500000000001976a914de9b2a8da088824e8fe51debea566617d851537888ac00000000000000001c6a1a74657374206f6620746865206f705f72657475726e206461746100000000" ) - @pytest.mark.skip_ui def test_nonzero_opreturn(self, client): inp1 = proto.TxInputType( address_n=parse_path("44'/0'/10'/0/5"), @@ -108,7 +107,6 @@ class TestOpReturn: ): btc.sign_tx(client, "Bitcoin", [inp1], [out1], prev_txes=TX_API) - @pytest.mark.skip_ui def test_opreturn_address(self, client): inp1 = proto.TxInputType( address_n=parse_path("44'/0'/0'/0/2"), diff --git a/tests/device_tests/test_reset_recovery_bip39.py b/tests/device_tests/test_reset_recovery_bip39.py index 0bcf29852..be88710cf 100644 --- a/tests/device_tests/test_reset_recovery_bip39.py +++ b/tests/device_tests/test_reset_recovery_bip39.py @@ -27,7 +27,6 @@ from ..common import EXTERNAL_ENTROPY, click_through, read_and_confirm_mnemonic @pytest.mark.skip_t1 -@pytest.mark.skip_ui @pytest.mark.setup_client(uninitialized=True) def test_reset_recovery(client): mnemonic = reset(client) diff --git a/tests/device_tests/test_reset_recovery_slip39_advanced.py b/tests/device_tests/test_reset_recovery_slip39_advanced.py index ae5ab5a24..175ad2a6a 100644 --- a/tests/device_tests/test_reset_recovery_slip39_advanced.py +++ b/tests/device_tests/test_reset_recovery_slip39_advanced.py @@ -31,7 +31,6 @@ from ..common import ( @pytest.mark.skip_t1 -@pytest.mark.skip_ui @pytest.mark.setup_client(uninitialized=True) def test_reset_recovery(client): mnemonics = reset(client) diff --git a/tests/device_tests/test_reset_recovery_slip39_basic.py b/tests/device_tests/test_reset_recovery_slip39_basic.py index 1232751b6..7e4682039 100644 --- a/tests/device_tests/test_reset_recovery_slip39_basic.py +++ b/tests/device_tests/test_reset_recovery_slip39_basic.py @@ -15,6 +15,7 @@ # If not, see . import itertools +from unittest import mock import pytest @@ -24,10 +25,13 @@ from trezorlib.tools import parse_path from ..common import click_through, read_and_confirm_mnemonic, recovery_enter_shares +EXTERNAL_ENTROPY = b"zlutoucky kun upel divoke ody" * 2 +MOCK_OS_URANDOM = mock.Mock(return_value=EXTERNAL_ENTROPY) + @pytest.mark.skip_t1 -@pytest.mark.skip_ui @pytest.mark.setup_client(uninitialized=True) +@mock.patch("os.urandom", MOCK_OS_URANDOM) def test_reset_recovery(client): mnemonics = reset(client) address_before = btc.get_address(client, "Bitcoin", parse_path("44'/0'/0'/0/0")) diff --git a/tests/device_tests/test_session.py b/tests/device_tests/test_session.py index b1320a9d1..ae296536b 100644 --- a/tests/device_tests/test_session.py +++ b/tests/device_tests/test_session.py @@ -29,7 +29,6 @@ XPUB = "xpub6BiVtCpG9fQPxnPmHXG8PhtzQdWC2Su4qWu6XW9tpWFYhxydCLJGrWBJZ5H6qTAHdPQ7 PIN4 = "1234" -@pytest.mark.skip_ui @pytest.mark.setup_client(pin=PIN4, passphrase=True) def test_clear_session(client): is_trezor1 = client.features.model == "1" @@ -64,7 +63,6 @@ def test_clear_session(client): assert get_public_node(client, ADDRESS_N).xpub == XPUB -@pytest.mark.skip_ui def test_end_session(client): # client instance starts out not initialized # XXX do we want to change this? @@ -95,7 +93,6 @@ def test_end_session(client): client.end_session() -@pytest.mark.skip_ui def test_cannot_resume_ended_session(client): session_id = client.session_id with client: @@ -112,7 +109,6 @@ def test_cannot_resume_ended_session(client): assert session_id != client.session_id -@pytest.mark.skip_ui def test_end_session_only_current(client): """test that EndSession only destroys the current session""" session_id_a = client.session_id @@ -131,7 +127,6 @@ def test_end_session_only_current(client): assert client.session_id == session_id_a -@pytest.mark.skip_ui @pytest.mark.setup_client(passphrase=True) def test_session_recycling(client): session_id_orig = client.session_id diff --git a/tests/device_tests/test_session_id_and_passphrase.py b/tests/device_tests/test_session_id_and_passphrase.py index 0f5247673..ff52cd65a 100644 --- a/tests/device_tests/test_session_id_and_passphrase.py +++ b/tests/device_tests/test_session_id_and_passphrase.py @@ -70,7 +70,6 @@ def _get_xpub(client, passphrase=None): return result.xpub -@pytest.mark.skip_ui @pytest.mark.setup_client(passphrase=True) def test_session_with_passphrase(client): # Let's start the communication by calling Initialize. @@ -98,7 +97,6 @@ def test_session_with_passphrase(client): assert _get_xpub(client, passphrase="A") == XPUB_PASSPHRASES["A"] -@pytest.mark.skip_ui @pytest.mark.setup_client(passphrase=True) def test_multiple_sessions(client): # start SESSIONS_STORED sessions @@ -138,7 +136,6 @@ def test_multiple_sessions(client): assert session_id != new_session_id -@pytest.mark.skip_ui @pytest.mark.setup_client(passphrase=True) def test_multiple_passphrases(client): # start a session @@ -172,7 +169,6 @@ def test_multiple_passphrases(client): assert _get_xpub(client, passphrase=None) == XPUB_PASSPHRASES["B"] -@pytest.mark.skip_ui @pytest.mark.slow @pytest.mark.setup_client(passphrase=True) def test_max_sessions_with_passphrases(client): @@ -215,7 +211,6 @@ def test_max_sessions_with_passphrases(client): _get_xpub(client, passphrase="whatever") # passphrase is prompted -@pytest.mark.skip_ui def test_session_enable_passphrase(client): # Let's start the communication by calling Initialize. session_id = _init_session(client) @@ -239,7 +234,6 @@ def test_session_enable_passphrase(client): assert _get_xpub(client, passphrase="A") == XPUB_PASSPHRASES["A"] -@pytest.mark.skip_ui @pytest.mark.skip_t1 @pytest.mark.setup_client(passphrase=True) def test_passphrase_on_device(client): @@ -279,7 +273,6 @@ def test_passphrase_on_device(client): assert response.xpub == XPUB_PASSPHRASES["A"] -@pytest.mark.skip_ui @pytest.mark.skip_t1 @pytest.mark.setup_client(passphrase=True) def test_passphrase_always_on_device(client): @@ -314,7 +307,6 @@ def test_passphrase_always_on_device(client): assert response.xpub == XPUB_PASSPHRASES["A"] -@pytest.mark.skip_ui @pytest.mark.skip_t2 @pytest.mark.setup_client(passphrase=True) def test_passphrase_on_device_not_possible_on_t1(client): @@ -331,7 +323,6 @@ def test_passphrase_on_device_not_possible_on_t1(client): assert response.code == FailureType.DataError -@pytest.mark.skip_ui @pytest.mark.setup_client(passphrase=True) def test_passphrase_ack_mismatch(client): response = client.call_raw(XPUB_REQUEST) @@ -341,7 +332,6 @@ def test_passphrase_ack_mismatch(client): assert response.code == FailureType.DataError -@pytest.mark.skip_ui @pytest.mark.setup_client(passphrase=True) def test_passphrase_missing(client): response = client.call_raw(XPUB_REQUEST) @@ -357,7 +347,6 @@ def test_passphrase_missing(client): assert response.code == FailureType.DataError -@pytest.mark.skip_ui @pytest.mark.setup_client(passphrase=True) def test_passphrase_length(client): def call(passphrase: str, expected_result: bool): @@ -392,7 +381,6 @@ def _get_xpub_cardano(client, passphrase): return response.xpub -@pytest.mark.skip_ui @pytest.mark.skip_t1 @pytest.mark.altcoin @pytest.mark.setup_client(passphrase=True) diff --git a/tests/ui_tests/fixtures.json b/tests/ui_tests/fixtures.json index 043582864..681ffe61b 100644 --- a/tests/ui_tests/fixtures.json +++ b/tests/ui_tests/fixtures.json @@ -58,6 +58,11 @@ "cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_amount_is_too_large]": "612dad8ab8762162a186ec9279d7de0bdfc589c52b4e4f4eba0545a00f21c3f0", "cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_has_non_staking_path]": "612dad8ab8762162a186ec9279d7de0bdfc589c52b4e4f4eba0545a00f21c3f0", "test_autolock.py::test_apply_auto_lock_delay": "38c720e0d29b7487060f2a0f8d256a5e5b4f735511e049c43f6ea62e560603ae", +"test_autolock.py::test_apply_auto_lock_delay_out_of_range[0]": "6badfcdd682ecaf16311749ef7a6c07c6a4d0df402427c8dd5a48d476751ed77", +"test_autolock.py::test_apply_auto_lock_delay_out_of_range[1]": "6badfcdd682ecaf16311749ef7a6c07c6a4d0df402427c8dd5a48d476751ed77", +"test_autolock.py::test_apply_auto_lock_delay_out_of_range[4194304]": "6badfcdd682ecaf16311749ef7a6c07c6a4d0df402427c8dd5a48d476751ed77", +"test_autolock.py::test_apply_auto_lock_delay_out_of_range[536871]": "6badfcdd682ecaf16311749ef7a6c07c6a4d0df402427c8dd5a48d476751ed77", +"test_autolock.py::test_apply_auto_lock_delay_out_of_range[9]": "6badfcdd682ecaf16311749ef7a6c07c6a4d0df402427c8dd5a48d476751ed77", "test_autolock.py::test_apply_auto_lock_delay_valid[10]": "a751228f82166c107a8e8872919e2b010ef3079763adc473066e7a3ada36f864", "test_autolock.py::test_apply_auto_lock_delay_valid[123]": "caf130bf5fa66fa5ac17432689046c1b6cd8b6a495bac3abef3c414d89b81e3f", "test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "b2a9a7f3e50afb04fb174627a07b939284aa0acc8b3b53af56f75a35ff1b32c9", @@ -70,6 +75,11 @@ "test_basic.py-test_device_id_same": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", "test_basic.py-test_features": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", "test_basic.py-test_ping": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_cancel.py::test_cancel_message_via_cancel[message0]": "83a76ca8054759209fc06244ee303f95e20da9e6ccdfe268d16fba5e0065de69", +"test_cancel.py::test_cancel_message_via_cancel[message1]": "83a76ca8054759209fc06244ee303f95e20da9e6ccdfe268d16fba5e0065de69", +"test_cancel.py::test_cancel_message_via_initialize[message0]": "83a76ca8054759209fc06244ee303f95e20da9e6ccdfe268d16fba5e0065de69", +"test_cancel.py::test_cancel_message_via_initialize[message1]": "83a76ca8054759209fc06244ee303f95e20da9e6ccdfe268d16fba5e0065de69", +"test_debuglink.py::test_softlock_instability": "bdc28bcdb709f6ffd74ba89bc34ff87a2516c9277bad701c1c6d9e9926ce6871", "test_descriptors.py::test_descriptors[Bitcoin-0-0-descriptors0]": "148a8d2b84daf91012d819490c414c77b3afc84840e1fec7280ac7ec23b44cd8", "test_descriptors.py::test_descriptors[Bitcoin-0-3-descriptors8]": "182537adcfefbf22c10266ffcb64c461c7bc6a03353ca88788195be27a4aae80", "test_descriptors.py::test_descriptors[Bitcoin-0-4-descriptors4]": "0c7f3b16cc9d68a8e3c43daf973eabb3d0953ef075c4818506255f07e3cd2bc1", @@ -83,6 +93,9 @@ "test_descriptors.py::test_descriptors[Testnet-1-3-descriptors11]": "fd013e30635a3b974ad6de96be8ad42394607f9fed0d16e027921569f3680f14", "test_descriptors.py::test_descriptors[Testnet-1-4-descriptors7]": "0f31ff649f8c5da3a8ff88267c961a92891e232a3aafb9ce6bbf17125e59fa3e", "test_msg_applysettings.py-test_apply_homescreen_toif": "408bdb69368ebdf1d299c6d43c1571f86cb1a0f1f606c5badd2f05ce7731f121", +"test_msg_applysettings.py-test_apply_homescreen_toif_fail[TOIf\\x80\\x00\\x80\\x00~\\x00\\x00\\x00-fefdb3aa": "6badfcdd682ecaf16311749ef7a6c07c6a4d0df402427c8dd5a48d476751ed77", +"test_msg_applysettings.py-test_apply_homescreen_toif_fail[TOIf\\x90\\x00\\x90\\x00~XXXf\\x90\\x00-4f4d817c": "6badfcdd682ecaf16311749ef7a6c07c6a4d0df402427c8dd5a48d476751ed77", +"test_msg_applysettings.py-test_apply_homescreen_toif_fail[TOIg\\x90\\x00\\x90\\x00~\\x00\\x00\\x00-63ffc926": "6badfcdd682ecaf16311749ef7a6c07c6a4d0df402427c8dd5a48d476751ed77", "test_msg_applysettings.py-test_apply_settings": "8f9f6013bb8a44fda279e9c7d091328fd7ccb39222a02bee701918528355083a", "test_msg_applysettings.py-test_apply_settings_passphrase": "40de0143b32b5d06ece43d47be27bb91499f0c2417754ddb8e9e03ff41a7f6d4", "test_msg_applysettings.py-test_apply_settings_passphrase_on_device": "3e6527e227bdde54f51bc9c417b176d0d87fdb6c40c4761368f50eb201b4beed", @@ -91,6 +104,7 @@ "test_msg_applysettings.py-test_label_too_long": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", "test_msg_applysettings.py-test_safety_checks": "4d37de3654678b7f16643cf4ef912a0bced545e0e0526e41ea0c9b820560344e", "test_msg_authorize_coinjoin.py::test_cancel_authorization": "d8a608beb6165f5667cc44dcff6bdc17ebb4638ddd3bd09e7f0e1e75d1e21135", +"test_msg_authorize_coinjoin.py::test_multisession_authorization": "dbcc5c1b3deb9953d215a39d31363ab9e4e9efe87579dbdc348bb2cb1d5aeb77", "test_msg_authorize_coinjoin.py::test_no_anonymity": "fd09da284b650e893990b95047b63a35b6b695fc5301d595f17a6d2cf9d90bcb", "test_msg_authorize_coinjoin.py::test_sign_tx": "5d53448397ff5cf4f951e2ac7f37c34e2ca9be99a3d3d2d31499397e10e4b157", "test_msg_authorize_coinjoin.py::test_unfair_fee": "62314e936de46a6caaf02c8eb20f6f471be6e79ca0c5450cad6f67f9cb823f2b", @@ -172,6 +186,18 @@ "test_msg_ethereum_signtx_eip155.py::test_with_data": "33e97436953f55bc61c5f54bd9702b1ba962c0e716d20ddbe9827be3d24ad98d", "test_msg_ethereum_verifymessage.py-test_verify": "da70ac961dc8ff548943498f42ad9436d3e2591f42793e37c8ec4cda9ea7835e", "test_msg_ethereum_verifymessage.py-test_verify_invalid": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getaddress.py-test_bch": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getaddress.py-test_bch_multisig": "f620ed42c682dd55ab7a1b4ac53686c03dd51966ad4bdd018bd24a3305b92148", +"test_msg_getaddress.py-test_btc": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getaddress.py-test_elements": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getaddress.py-test_grs": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getaddress.py-test_ltc": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getaddress.py-test_multisig": "cf79d7965130fccaac260cf5dbda12750a83819668a8f89eca303b63dadbe17e", +"test_msg_getaddress.py-test_multisig_missing": "04ea55eff09fb8fe4f68efe8b6b2c2be442c98ac1c9802ef0681125009e7b5d4", +"test_msg_getaddress.py-test_public_ckd": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getaddress.py-test_tbtc": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getaddress.py::test_crw": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getaddress.py::test_invalid_path": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", "test_msg_getaddress.py::test_unknown_path_tt": "0f6e15d265d012a341811965b72e75fbe0e76a17091f0bb2e89caa4a75c550a0", "test_msg_getaddress_segwit.py-test_show_multisig_3": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", "test_msg_getaddress_segwit.py-test_show_segwit": "329134e85a7cc76eaf776c92b7fc3932946d411249661bf9a2d9ce314fcf27f8", @@ -213,6 +239,37 @@ "test_msg_getentropy.py::test_entropy[9]": "a722fa2048fa3102889ec05558d25f837a364ef2a118e85975683e10a56f1356", "test_msg_getownershipproof.py::test_confirm_ownership_proof": "7724ef59fee121da564b935b5880479c9518d97dc286e2949f13a8a8bdf6fa4a", "test_msg_getownershipproof.py::test_confirm_ownership_proof_with_data": "1043f54be594bd3180c59c8474ef7ef46be35f99ad5f6890949c38680c097e52", +"test_msg_getownershipproof.py::test_fake_ownership_id": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getownershipproof.py::test_ownership_id": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getownershipproof.py::test_p2wpkh_ownership_proof": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_get_public_node[Bitcoin-76067358-path0-xpub6BiVtCpG9fQPxnPmH-0049d035": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_get_public_node[Bitcoin-76067358-path1-xpub6BiVtCpG9fQQR6cSu-c96dd28d": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_get_public_node[Bitcoin-76067358-path2-xpub6FVDRC1jiWNTuT3em-ffe900da": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_get_public_node[Bitcoin-76067358-path3-xpub6GhTNegKCjTqjYS4H-d4c03405": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_get_public_node[Bitcoin-76067358-path6-xpub68Zyu13qjcQvJXTsn-a08fbe99": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_get_public_node[Litecoin-27108450-path10-Ltub2dcb6Nghj3kwaC2-f1a03f2a": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_get_public_node[Litecoin-27108450-path7-Ltub2Y8PyEMWQVgiX4L4-6a5a123f": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_get_public_node[Litecoin-27108450-path8-Ltub2Y8PyEMWQVgiy8Zi-d185aae6": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_get_public_node[Litecoin-27108450-path9-Ltub2dTvwC4v7GNeR6UE-a2a154d3": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_get_public_node[Testnet-70617039-path4-tpubDDKn3FtHc74CaRrRb-15fe2cba": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_get_public_node[Testnet-70617039-path5-tpubDGwNSs8z8jZU2EcUi-bde5350d": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_invalid_path[Bcash-path5]": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_invalid_path[Bitcoin-path0]": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_invalid_path[Bitcoin-path2]": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_invalid_path[Bitcoin-path3]": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_invalid_path[Litecoin-path4]": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_invalid_path[Testnet-path1]": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_script_type[0-xpub6BiVtCp7ozsRo7kaoYNrCNAVJwPYTQHjoXFD3YS797-f79a9265": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_script_type[3-zpub6qP2VY9x7MxPVi8pUFx6cYMVesgSLeGjdkHecLDsu8-0264ec8a": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_script_type[4-ypub6WYmBsV2xgQueQwhduAUQTFzUuXzQ2HEidmRpwKzX7-f699e5f6": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey.py::test_script_type[None-xpub6BiVtCp7ozsRo7kaoYNrCNAVJwPYTQHjoXFD3YS-83938439": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey_curve.py::test_coin_and_curve": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey_curve.py::test_ed25519_public": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey_curve.py::test_publickey_curve[ed25519-path4-002e28dc0346d6d30d4e33f5-2d452100": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey_curve.py::test_publickey_curve[nist256p1-path2-0324c6860c25cdf7a8c103-903f375c": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey_curve.py::test_publickey_curve[nist256p1-path3-03b93f7e6c777143ad4eeb-52f3ce03": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey_curve.py::test_publickey_curve[secp256k1-path0-02f65ce170451f66f46daf-74f2bfd2": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_getpublickey_curve.py::test_publickey_curve[secp256k1-path1-0212f4629f4f224db0f778-ffb4454d": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", "test_msg_lisk_getaddress.py::test_lisk_getaddress[m-44h-134h-0h-3685460048641680438L]": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", "test_msg_lisk_getaddress.py::test_lisk_getaddress[m-44h-134h-100h-7191894793645699638L]": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", "test_msg_lisk_getaddress.py::test_lisk_getaddress[m-44h-134h-1h-2178885030141662239L]": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", @@ -252,6 +309,7 @@ "test_msg_nem_signtx_transfers.py-test_nem_signtx_simple": "d36a67610b16f835b174a053fe60104a03ea5d49fbd612d73f5d8cdb31fce421", "test_msg_nem_signtx_transfers.py-test_nem_signtx_unknown_mosaic": "1fd9bf33c3c481d8b76fbdddfc3e8d91df6a1a97661a8f8c4b57cd3df41e83f0", "test_msg_nem_signtx_transfers.py-test_nem_signtx_xem_as_mosaic": "842307e1734fea44aca9e53e2d76e0c6206348c4461f9eb1a36021bed1f681c8", +"test_msg_ping.py::test_ping": "229a51d6e66ea58927167e84f96d5d4d30dd0ebace0258fcb709f841ce0beb9e", "test_msg_recoverydevice_bip39_dryrun.py::test_bad_parameters[label-test]": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", "test_msg_recoverydevice_bip39_dryrun.py::test_bad_parameters[language-test]": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", "test_msg_recoverydevice_bip39_dryrun.py::test_bad_parameters[passphrase_protection-True]": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", @@ -332,15 +390,31 @@ "test_msg_signtx.py-test_change_on_main_chain_allowed": "cfd5c83510c044c456622298138e222aee135a6df607bb6e5603228535f0762f", "test_msg_signtx.py-test_fee_high_hardfail": "0b0e6938ae67017f876ad56995d5f7131ab5ceee2877b0e3dafcd50b2bf6d4cf", "test_msg_signtx.py-test_fee_high_warning": "8cb3b31dce25fa36cd5c8322c71611dc7bc9d2290579ffd88dd67d21058bde04", +"test_msg_signtx.py-test_incorrect_input_script_type[0]": "ff8306b910f6886638e30736acd025ff7f45dde3c6648de1f6c6922bc6f590c5", +"test_msg_signtx.py-test_incorrect_input_script_type[2]": "ff8306b910f6886638e30736acd025ff7f45dde3c6648de1f6c6922bc6f590c5", +"test_msg_signtx.py-test_incorrect_output_script_type[0]": "ff8306b910f6886638e30736acd025ff7f45dde3c6648de1f6c6922bc6f590c5", +"test_msg_signtx.py-test_incorrect_output_script_type[1]": "ff8306b910f6886638e30736acd025ff7f45dde3c6648de1f6c6922bc6f590c5", "test_msg_signtx.py-test_lock_time[1-4294967295]": "d805244ea557c3695101a6f79f13045f22bc16d5608744e0321eab7f3a98d8b0", "test_msg_signtx.py-test_lock_time[499999999-4294967294]": "23a154e7b40680161bb099cfc6702d75909c222056867515647123573eef1716", "test_msg_signtx.py-test_lock_time[500000000-4294967294]": "2ac61446c20785e45223a20ae90660905fedf20d2a383a65fcbc1edd5fe87ad1", "test_msg_signtx.py-test_lots_of_change": "9e143458b399d187b6a3060fc95b998822f5a7ed67d6915610fd02c0ccab791e", +"test_msg_signtx.py-test_lots_of_inputs": "7d02dd952be20b46005af23c8b46a95590529d8e838459e540eca0b058fc32c1", +"test_msg_signtx.py-test_lots_of_outputs": "f9d50f30dbdaeddf1f54e8bf76dce07fa9d40dcb7ef36a908e76123f2151501c", "test_msg_signtx.py-test_not_enough_funds": "dbaa027aa1f4b08b138a5965245593dab2a662b0f4d88dd28b82a64f88f5d7fe", +"test_msg_signtx.py-test_not_enough_vouts": "a7bbbbcd49edb429d30f5e27fb4e6e83136884d6789e9ddda4477af31180409f", "test_msg_signtx.py-test_one_one_fee": "f6b6662fa1384f20640522a169575f8ca26185fca8ca3bc2a3a5ccd1fa9d2f68", "test_msg_signtx.py-test_one_three_fee": "192d74e668c0f4345608da9f9af45f0cc2cb8ea3e532dca826c1da1fdb28c7f9", "test_msg_signtx.py-test_one_two_fee": "836bc3e93692035e38ef4421d6e9f298d3ec304214c17eb974a0e8ffed406b6e", "test_msg_signtx.py-test_p2sh": "bac5ead8e28a6439c8f961f07e7d27c3fa82d3dfdbb351640b6f70bb0e1644a5", +"test_msg_signtx.py-test_prevtx_forbidden_fields[branch_id-13]": "d6b003cf299f831a8b64bec15351405858224a05ffe85d266eb42214e4d52491", +"test_msg_signtx.py-test_prevtx_forbidden_fields[expiry-9]": "d6b003cf299f831a8b64bec15351405858224a05ffe85d266eb42214e4d52491", +"test_msg_signtx.py-test_prevtx_forbidden_fields[extra_data-hello world]": "d6b003cf299f831a8b64bec15351405858224a05ffe85d266eb42214e4d52491", +"test_msg_signtx.py-test_prevtx_forbidden_fields[timestamp-42]": "d6b003cf299f831a8b64bec15351405858224a05ffe85d266eb42214e4d52491", +"test_msg_signtx.py-test_prevtx_forbidden_fields[version_group_id-69]": "d6b003cf299f831a8b64bec15351405858224a05ffe85d266eb42214e4d52491", +"test_msg_signtx.py-test_signtx_forbidden_fields[branch_id-13]": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_signtx.py-test_signtx_forbidden_fields[expiry-9]": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_signtx.py-test_signtx_forbidden_fields[timestamp-42]": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_signtx.py-test_signtx_forbidden_fields[version_group_id-69]": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", "test_msg_signtx.py-test_spend_coinbase": "f498aec01de57978d14dd2e02bae2a3d904a1802e06f15be4ed181976af5130d", "test_msg_signtx.py-test_testnet_big_amount": "5b84d787542e5fa1436db4e768fbac15f92662a6a0deb580012def5a788adf12", "test_msg_signtx.py-test_testnet_fee_high_warning": "7ae33df914ce2025a3eb26a6a6ad915cd8891b5070cf3318ed1a279288a01251", @@ -391,10 +465,36 @@ "test_msg_signtx_invalid_path.py-test_invalid_path_pass_forkid": "667dcb09b569e5b4e091e6b1ac7e8e057c0c730c931b22f8c0ee64050f3f467b", "test_msg_signtx_komodo.py-test_one_one_fee_sapling": "14bad8852ee51f6fec12677cced9ffafa0cbae91b4ba94e988a800544072ed21", "test_msg_signtx_komodo.py-test_one_one_rewards_claim": "751e83d63bf01c6c57047b5e004629d613df75342371cd43a7b4b80a07f4b88d", +"test_msg_signtx_mixed_inputs.py::test_non_segwit_segwit_inputs": "d72acb396bbc3109054919bddc823e8900bb30b6c41c553922beb449af9bb51d", +"test_msg_signtx_mixed_inputs.py::test_non_segwit_segwit_non_segwit_inputs": "50b846945367990f0b6bcad9161cb899b265c9540a2578e0f5c39533a7ec0010", +"test_msg_signtx_mixed_inputs.py::test_segwit_non_segwit_inputs": "d72acb396bbc3109054919bddc823e8900bb30b6c41c553922beb449af9bb51d", +"test_msg_signtx_mixed_inputs.py::test_segwit_non_segwit_segwit_inputs": "97a91ebd2a5f3da369b8309831ce57d0684f4a2363705c36918949400b879b88", "test_msg_signtx_peercoin.py::test_timestamp_included": "825b9bdf5238c5c6415a254a6bae4b2bd9df8fc5cb31f66f0c20145cb4e60bbb", +"test_msg_signtx_peercoin.py::test_timestamp_missing": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_signtx_peercoin.py::test_timestamp_missing_prevtx": "05b4c00ec4f40bc5f6f4eaff6e0de11dd1f277682be5107a279eccfeb32618b8", +"test_msg_signtx_prevhash.py::test_invalid_prev_hash[None]": "ff8306b910f6886638e30736acd025ff7f45dde3c6648de1f6c6922bc6f590c5", +"test_msg_signtx_prevhash.py::test_invalid_prev_hash[]": "ff8306b910f6886638e30736acd025ff7f45dde3c6648de1f6c6922bc6f590c5", +"test_msg_signtx_prevhash.py::test_invalid_prev_hash[hello world]": "ff8306b910f6886638e30736acd025ff7f45dde3c6648de1f6c6922bc6f590c5", +"test_msg_signtx_prevhash.py::test_invalid_prev_hash[x]": "ff8306b910f6886638e30736acd025ff7f45dde3c6648de1f6c6922bc6f590c5", +"test_msg_signtx_prevhash.py::test_invalid_prev_hash[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "ff8306b910f6886638e30736acd025ff7f45dde3c6648de1f6c6922bc6f590c5", +"test_msg_signtx_prevhash.py::test_invalid_prev_hash_attack[None]": "4afc2d872a291c0da67f3309f31ad62202864ab3e8eb66483b39215ee87ef1a1", +"test_msg_signtx_prevhash.py::test_invalid_prev_hash_attack[]": "4afc2d872a291c0da67f3309f31ad62202864ab3e8eb66483b39215ee87ef1a1", +"test_msg_signtx_prevhash.py::test_invalid_prev_hash_attack[hello world]": "4afc2d872a291c0da67f3309f31ad62202864ab3e8eb66483b39215ee87ef1a1", +"test_msg_signtx_prevhash.py::test_invalid_prev_hash_attack[x]": "4afc2d872a291c0da67f3309f31ad62202864ab3e8eb66483b39215ee87ef1a1", +"test_msg_signtx_prevhash.py::test_invalid_prev_hash_attack[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "4afc2d872a291c0da67f3309f31ad62202864ab3e8eb66483b39215ee87ef1a1", +"test_msg_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[None]": "8de173b5bba785354c6bf221e6405387f36bb1e9a683ecdba3c43aab98648366", +"test_msg_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[]": "8de173b5bba785354c6bf221e6405387f36bb1e9a683ecdba3c43aab98648366", +"test_msg_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[hello world]": "8de173b5bba785354c6bf221e6405387f36bb1e9a683ecdba3c43aab98648366", +"test_msg_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[x]": "8de173b5bba785354c6bf221e6405387f36bb1e9a683ecdba3c43aab98648366", +"test_msg_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "8de173b5bba785354c6bf221e6405387f36bb1e9a683ecdba3c43aab98648366", +"test_msg_signtx_replacement.py::test_attack_fake_ext_input_amount": "ff8306b910f6886638e30736acd025ff7f45dde3c6648de1f6c6922bc6f590c5", +"test_msg_signtx_replacement.py::test_attack_fake_int_input_amount": "ff8306b910f6886638e30736acd025ff7f45dde3c6648de1f6c6922bc6f590c5", +"test_msg_signtx_replacement.py::test_attack_false_internal": "ff8306b910f6886638e30736acd025ff7f45dde3c6648de1f6c6922bc6f590c5", +"test_msg_signtx_replacement.py::test_attack_steal_change": "ff8306b910f6886638e30736acd025ff7f45dde3c6648de1f6c6922bc6f590c5", "test_msg_signtx_replacement.py::test_p2pkh_fee_bump": "881f6491e9f4417cd747dda2dc0eaafdf1a4769a5e53aa303bb06547d6a9133b", "test_msg_signtx_replacement.py::test_p2wpkh_finalize": "1147c6996c193b904b72d38def07c692cf48d7bdbe244343c9e98ee0db497d11", "test_msg_signtx_replacement.py::test_p2wpkh_in_p2sh_remove_change": "f66437cc88d016ddb0b3fd4e6d2c6536d9a1745dfc92ce9cd334c3cbaaefb4a9", +"test_msg_signtx_replacement.py::test_p2wpkh_invalid_signature": "1147c6996c193b904b72d38def07c692cf48d7bdbe244343c9e98ee0db497d11", "test_msg_signtx_replacement.py::test_p2wpkh_payjoin[19909659-90000-02483045022100aa1b91fb25-124c0968": "a5473b5f3931fb6530a991e45aa32507069a7b402878d1eda2ce6e8be1a673e1", "test_msg_signtx_replacement.py::test_p2wpkh_payjoin[19909718-90000-024730440220753f53049ca4-2253fa0b": "a5473b5f3931fb6530a991e45aa32507069a7b402878d1eda2ce6e8be1a673e1", "test_msg_signtx_replacement.py::test_p2wpkh_payjoin[19909800-89859-0248304502210097a42b35d3-89bd0d1d": "a5473b5f3931fb6530a991e45aa32507069a7b402878d1eda2ce6e8be1a673e1", @@ -420,7 +520,10 @@ "test_msg_signtx_zcash.py-test_external_presigned": "539b10ad2f3a626a880b9823897ff827a6c30af1dfd041da147bf009fcec2497", "test_msg_signtx_zcash.py-test_one_one_fee_sapling": "112df2ad84f4a517623eed893b3be809e0ba43e6139fd70b7f94c12f28cc633c", "test_msg_signtx_zcash.py-test_spend_old_versions": "da64743acaead691ec617cd56886b65453f82a2e3eb78b3f9dc737dbfc4155e6", +"test_msg_signtx_zcash.py-test_v3_not_supported": "ff8306b910f6886638e30736acd025ff7f45dde3c6648de1f6c6922bc6f590c5", +"test_msg_signtx_zcash.py-test_version_group_id_missing": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", "test_msg_stellar_get_address.py-test_stellar_get_address": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_msg_stellar_get_address.py-test_stellar_get_address_fail": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", "test_msg_stellar_get_address.py-test_stellar_get_address_sep": "46a370f6ff6cc90860e2b13eaab201986059227fbf5c841d9c55a21078155aba", "test_msg_stellar_sign_transaction.py::test_manage_data": "c9d31359eff0a9f014d589dd754583fa1d1cb00c394f1f9b4f4000bd5bf8ae59", "test_msg_stellar_sign_transaction.py::test_sign_tx_account_merge_op": "3e73ae688128d9df64b4ff9499f8f66b06aed26787d6fdb7189c0268b10ee6cb", @@ -477,7 +580,9 @@ "test_multisig_change.py-test_multisig_external_external": "ddecdadd659b0d1360a6a255c6f9dbf2c5b813039877b76d4062ddab765e1912", "test_multisig_change.py-test_multisig_mismatch_change": "7cb243b20be31a587dced4aaaf782a2d8487595369dde66aacb1b9a76e89c4fe", "test_multisig_change.py-test_multisig_mismatch_inputs": "64741bd84c5394e719125c1fbe8c34ef866ac63ca24ee1299e4268c59a199466", +"test_op_return.py-test_nonzero_opreturn": "ff8306b910f6886638e30736acd025ff7f45dde3c6648de1f6c6922bc6f590c5", "test_op_return.py-test_opreturn": "87907ef9c2f4ce30ac95ad7d0cb3eac66762756e4ace52147bc589d64277f3b1", +"test_op_return.py-test_opreturn_address": "ff8306b910f6886638e30736acd025ff7f45dde3c6648de1f6c6922bc6f590c5", "test_passphrase_slip39_advanced.py::test_128bit_passphrase": "4d8c7eea0bd6786a070880d94fe288294e570b8d357dd9bc01865a8acc39d143", "test_passphrase_slip39_advanced.py::test_256bit_passphrase": "4d8c7eea0bd6786a070880d94fe288294e570b8d357dd9bc01865a8acc39d143", "test_passphrase_slip39_basic.py::test_2of5_passphrase": "54091a6faba4ecc4e40db591bb8861d00464de34b38a31925202f5bc44e4c41c", @@ -488,8 +593,27 @@ "test_reset_backup.py::test_skip_backup_msg[0-backup_flow_bip39]": "913ab51cbefc22938190a86865793e7e99420e9c99d6714ab94c8aba6edab3ea", "test_reset_backup.py::test_skip_backup_msg[1-backup_flow_slip39_basic]": "189a01dbe3f11061b13562d5773971ec44c0737695bfe1a4dc1c5dc1b3ffd8c0", "test_reset_backup.py::test_skip_backup_msg[2-backup_flow_slip39_advanced]": "cd6c1248d9ee4d6416c57026a96190a84ac8608af04fd42c9c8c6b7275226aba", +"test_reset_recovery_bip39.py::test_reset_recovery": "75647aa74b2dfe453d1246a04d78e7218b419048f5102907361e719b4784a246", +"test_reset_recovery_slip39_advanced.py::test_reset_recovery": "f2f52b70ce0a3b715ef01aa995dc08d15747ee973340af2f0e5006c68418c304", +"test_reset_recovery_slip39_basic.py::test_reset_recovery": "fce2f11994e2f25ad7d2a79edd313c97d73bc1066f2d0d0d59f073e2469e094f", "test_sdcard.py::test_sd_format": "6bb7486932a5d38cdbb9b1368ee92aca3fad384115c744feadfade80c1605dd8", "test_sdcard.py::test_sd_no_format": "f47e897caee95cf98c1b4506732825f853c4b8afcdc2713e38e3b4055973c9ac", "test_sdcard.py::test_sd_protect_unlock": "52a0a4b847ceab2ef5bc9b22898e14df4e4b703227f4eda9807947702da28af8", +"test_session.py::test_cannot_resume_ended_session": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_session.py::test_clear_session": "b25f5f775ad5cc9194632ea88be08077394d2129e52fcc4536b98b277d91bdbb", +"test_session.py::test_end_session": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_session.py::test_end_session_only_current": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_session.py::test_session_recycling": "54091a6faba4ecc4e40db591bb8861d00464de34b38a31925202f5bc44e4c41c", +"test_session_id_and_passphrase.py::test_cardano_passphrase": "79a7a65ab4fd23dc8fcfe9a2c63c3c2b0b8e78dc2eb0180c782ef9847afdd07a", +"test_session_id_and_passphrase.py::test_max_sessions_with_passphrases": "df9891fe51f3810334be5945b4e26e78b77adc76bd3fe0cfab918dcf1e45e5e9", +"test_session_id_and_passphrase.py::test_multiple_passphrases": "72529589f198bbac44ced587153440e28bd8a9116c20b8d0cab2ca576875e0b7", +"test_session_id_and_passphrase.py::test_multiple_sessions": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586", +"test_session_id_and_passphrase.py::test_passphrase_ack_mismatch": "612dad8ab8762162a186ec9279d7de0bdfc589c52b4e4f4eba0545a00f21c3f0", +"test_session_id_and_passphrase.py::test_passphrase_always_on_device": "524d90c68c6f091c2145f571a884a8a168e8af101513966f5e0fbb3859035129", +"test_session_id_and_passphrase.py::test_passphrase_length": "a8858d89288f2160148860fee8938d261c4960732db3b2c874b9899395b9ddc6", +"test_session_id_and_passphrase.py::test_passphrase_missing": "3a92115b6bfb2d53f2445a67c9c5df6b6b5ff97769de98e3fac9e1bf424c5669", +"test_session_id_and_passphrase.py::test_passphrase_on_device": "c9ca2c9cf6dd416dad4de311266690ec2266b551d74f9d3619301305b3dbe81e", +"test_session_id_and_passphrase.py::test_session_enable_passphrase": "b27321ed372b8ade7c4941a80f1f945851046b039a1b43c43a6953106bd1619e", +"test_session_id_and_passphrase.py::test_session_with_passphrase": "a044d7a42229ab7cd74651e03dd64edcceb86d72d50bd63a40336decf0b25d3d", "test_u2f_counter.py::test_u2f_counter": "7d96a4d262b9d8a2c1158ac1e5f0f7b2c3ed5f2ba9d6235a014320313f9488fe" }