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:
parent
1da4f17b39
commit
c122018254
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user