1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-12 01:18:14 +00:00

test: fix UI-diffs in test_session_id_and_passphrase

[no changelog]
This commit is contained in:
M1nd3r 2024-11-28 13:39:28 +01:00
parent 1da4f17b39
commit c122018254

View File

@ -50,7 +50,11 @@ XPUB_REQUEST = messages.GetPublicKey(address_n=ADDRESS_N, coin_name="Bitcoin")
SESSIONS_STORED = 10 SESSIONS_STORED = 10
def _get_xpub(session: Session, expected_passphrase_req: bool = False): def _get_xpub(
session: Session,
expected_passphrase_req: bool = False,
passphrase_v1: str | None = None,
):
"""Get XPUB and check that the appropriate passphrase flow has happened.""" """Get XPUB and check that the appropriate passphrase flow has happened."""
if expected_passphrase_req: if expected_passphrase_req:
expected_responses = [ expected_responses = [
@ -61,6 +65,8 @@ def _get_xpub(session: Session, expected_passphrase_req: bool = False):
] ]
else: else:
expected_responses = [messages.PublicKey] expected_responses = [messages.PublicKey]
if passphrase_v1 is not None and session.session_version == Session.CODEC_V1:
session.passphrase = passphrase_v1
with session: with session:
session.set_expected_responses(expected_responses) session.set_expected_responses(expected_responses)
@ -90,9 +96,11 @@ def test_session_with_passphrase(client: Client):
assert session3 != session_id assert session3 != session_id
assert _get_xpub(session3, expected_passphrase_req=True) == XPUB_PASSPHRASES["A"] assert _get_xpub(session3, expected_passphrase_req=True) == XPUB_PASSPHRASES["A"]
# Unknown session id is the same as setting it to None. # TODO: The following part is kept only for solving UI-diff in tests
# _init_session(client, session_id=b"X" * 32) # - it can be removed if fixtures are updated, imo
# assert _get_xpub(passphrase="A") == XPUB_PASSPHRASES["A"] session4 = Session(client.get_session(passphrase="A"))
assert session4 != session_id
assert _get_xpub(session4, expected_passphrase_req=True) == XPUB_PASSPHRASES["A"]
@pytest.mark.setup_client(passphrase=True) @pytest.mark.setup_client(passphrase=True)
@ -188,12 +196,6 @@ def test_max_sessions_with_passphrases(client: Client):
sessions[passphrase] = session sessions[passphrase] = session
assert _get_xpub(session, expected_passphrase_req=True) == xpub assert _get_xpub(session, expected_passphrase_req=True) == xpub
for passphrase, xpub in XPUB_PASSPHRASES.items():
session = Session(client.get_session(passphrase=passphrase))
assert session.id not in session_ids.values()
session_ids[passphrase] = session.id
sessions[passphrase] = session
assert _get_xpub(session, expected_passphrase_req=True) == xpub
# passphrase is not prompted for the started the sessions, regardless the order # passphrase is not prompted for the started the sessions, regardless the order
# let's try 20 different orderings # let's try 20 different orderings
passphrases = list(XPUB_PASSPHRASES.keys()) passphrases = list(XPUB_PASSPHRASES.keys())
@ -220,7 +222,9 @@ def test_max_sessions_with_passphrases(client: Client):
for passphrase in reversed(passphrases): for passphrase in reversed(passphrases):
resumed_session = Session(client.resume_session(sessions[passphrase])) resumed_session = Session(client.resume_session(sessions[passphrase]))
_get_xpub( _get_xpub(
resumed_session, expected_passphrase_req=True resumed_session,
expected_passphrase_req=True,
passphrase_v1="whatever",
) # passphrase is prompted ) # passphrase is prompted