mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-24 23:38:09 +00:00
tests: watch_layout must be explicit (fixes #1142)
This commit is contained in:
parent
c008600d08
commit
741fca0156
@ -22,6 +22,7 @@ from mnemonic import Mnemonic
|
|||||||
|
|
||||||
from . import mapping, messages, protobuf
|
from . import mapping, messages, protobuf
|
||||||
from .client import TrezorClient
|
from .client import TrezorClient
|
||||||
|
from .exceptions import TrezorFailure
|
||||||
from .log import DUMP_BYTES
|
from .log import DUMP_BYTES
|
||||||
from .tools import expect
|
from .tools import expect
|
||||||
|
|
||||||
@ -85,6 +86,8 @@ class DebugLink:
|
|||||||
|
|
||||||
def wait_layout(self):
|
def wait_layout(self):
|
||||||
obj = self._call(messages.DebugLinkGetState(wait_layout=True))
|
obj = self._call(messages.DebugLinkGetState(wait_layout=True))
|
||||||
|
if isinstance(obj, messages.Failure):
|
||||||
|
raise TrezorFailure(obj)
|
||||||
return layout_lines(obj.layout_lines)
|
return layout_lines(obj.layout_lines)
|
||||||
|
|
||||||
def watch_layout(self, watch: bool) -> None:
|
def watch_layout(self, watch: bool) -> None:
|
||||||
@ -344,11 +347,9 @@ class TrezorClientDebugLink(TrezorClient):
|
|||||||
self.ui.input_flow = input_flow
|
self.ui.input_flow = input_flow
|
||||||
input_flow.send(None) # start the generator
|
input_flow.send(None) # start the generator
|
||||||
|
|
||||||
def watch_layout(self, watch: bool) -> None:
|
def watch_layout(self, watch: bool = True) -> None:
|
||||||
"""Enable or disable watching layout changes.
|
"""Enable or disable watching layout changes.
|
||||||
|
|
||||||
Happens implicitly in a `with client` block.
|
|
||||||
|
|
||||||
Since trezor-core v2.3.2, it is necessary to call `watch_layout()` before
|
Since trezor-core v2.3.2, it is necessary to call `watch_layout()` before
|
||||||
using `debug.wait_layout()`, otherwise layout changes are not reported.
|
using `debug.wait_layout()`, otherwise layout changes are not reported.
|
||||||
"""
|
"""
|
||||||
@ -362,7 +363,6 @@ class TrezorClientDebugLink(TrezorClient):
|
|||||||
def __enter__(self):
|
def __enter__(self):
|
||||||
# For usage in with/expected_responses
|
# For usage in with/expected_responses
|
||||||
self.in_with_statement += 1
|
self.in_with_statement += 1
|
||||||
self.watch_layout(True)
|
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def __exit__(self, _type, value, traceback):
|
def __exit__(self, _type, value, traceback):
|
||||||
|
@ -141,6 +141,7 @@ def test_show_multisig_xpubs(client):
|
|||||||
client.debug.press_yes()
|
client.debug.press_yes()
|
||||||
|
|
||||||
with client:
|
with client:
|
||||||
|
client.watch_layout()
|
||||||
client.set_input_flow(input_flow)
|
client.set_input_flow(input_flow)
|
||||||
btc.get_address(
|
btc.get_address(
|
||||||
client,
|
client,
|
||||||
|
@ -81,6 +81,7 @@ def do_recover_core(client, mnemonic, **kwargs):
|
|||||||
client.debug.click(buttons.OK)
|
client.debug.click(buttons.OK)
|
||||||
|
|
||||||
with client:
|
with client:
|
||||||
|
client.watch_layout()
|
||||||
client.set_input_flow(input_flow)
|
client.set_input_flow(input_flow)
|
||||||
return device.recover(client, dry_run=True, **kwargs)
|
return device.recover(client, dry_run=True, **kwargs)
|
||||||
|
|
||||||
@ -160,6 +161,7 @@ def test_invalid_seed_core(client):
|
|||||||
client.debug.click(buttons.OK)
|
client.debug.click(buttons.OK)
|
||||||
|
|
||||||
with client:
|
with client:
|
||||||
|
client.watch_layout()
|
||||||
client.set_input_flow(input_flow)
|
client.set_input_flow(input_flow)
|
||||||
with pytest.raises(exceptions.Cancelled):
|
with pytest.raises(exceptions.Cancelled):
|
||||||
return device.recover(client, dry_run=True)
|
return device.recover(client, dry_run=True)
|
||||||
|
@ -64,6 +64,7 @@ def test_tt_pin_passphrase(client):
|
|||||||
|
|
||||||
with client:
|
with client:
|
||||||
client.set_input_flow(input_flow)
|
client.set_input_flow(input_flow)
|
||||||
|
client.watch_layout()
|
||||||
device.recover(
|
device.recover(
|
||||||
client, pin_protection=True, passphrase_protection=True, label="hello"
|
client, pin_protection=True, passphrase_protection=True, label="hello"
|
||||||
)
|
)
|
||||||
@ -109,6 +110,7 @@ def test_tt_nopin_nopassphrase(client):
|
|||||||
|
|
||||||
with client:
|
with client:
|
||||||
client.set_input_flow(input_flow)
|
client.set_input_flow(input_flow)
|
||||||
|
client.watch_layout()
|
||||||
device.recover(
|
device.recover(
|
||||||
client, pin_protection=False, passphrase_protection=False, label="hello"
|
client, pin_protection=False, passphrase_protection=False, label="hello"
|
||||||
)
|
)
|
||||||
|
@ -66,6 +66,7 @@ def test_sd_protect_unlock(client):
|
|||||||
client.debug.press_yes()
|
client.debug.press_yes()
|
||||||
|
|
||||||
with client:
|
with client:
|
||||||
|
client.watch_layout()
|
||||||
client.set_input_flow(input_flow_enable_sd_protect)
|
client.set_input_flow(input_flow_enable_sd_protect)
|
||||||
device.sd_protect(client, Op.ENABLE)
|
device.sd_protect(client, Op.ENABLE)
|
||||||
|
|
||||||
@ -91,6 +92,7 @@ def test_sd_protect_unlock(client):
|
|||||||
client.debug.press_yes()
|
client.debug.press_yes()
|
||||||
|
|
||||||
with client:
|
with client:
|
||||||
|
client.watch_layout()
|
||||||
client.set_input_flow(input_flow_change_pin)
|
client.set_input_flow(input_flow_change_pin)
|
||||||
device.change_pin(client)
|
device.change_pin(client)
|
||||||
|
|
||||||
@ -110,6 +112,7 @@ def test_sd_protect_unlock(client):
|
|||||||
client.debug.press_no() # close
|
client.debug.press_no() # close
|
||||||
|
|
||||||
with client, pytest.raises(TrezorFailure) as e:
|
with client, pytest.raises(TrezorFailure) as e:
|
||||||
|
client.watch_layout()
|
||||||
client.set_input_flow(input_flow_change_pin_format)
|
client.set_input_flow(input_flow_change_pin_format)
|
||||||
device.change_pin(client)
|
device.change_pin(client)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user