fixup! fix: tests

This commit is contained in:
Ioan Bizău
2026-02-18 09:29:28 +01:00
parent 466b2abe57
commit 9f9e314b7c
2 changed files with 31 additions and 23 deletions

View File

@@ -1022,7 +1022,7 @@ class DebugUI:
self._paginate_and_confirm(br.pages)
def _visit_vertical_menu(
self, menu_layout: LayoutContent, cb: t.Callable[[int], None] | None
self, menu_layout: LayoutContent, gen: t.Generator[None, t.Any, None] | None
) -> None:
assert self.debuglink.layout_type in (LayoutType.Delizia, LayoutType.Eckhart)
assert "VerticalMenu" in menu_layout.all_components()
@@ -1033,18 +1033,22 @@ class DebugUI:
menu_buttons = menu_layout.find_unique_value_by_key(
key="buttons", default=None, only_type=list
)
i = 0
if gen:
next(gen)
for menu_button, item_button in zip(menu_buttons, item_buttons):
if menu_button.get("is_cancel"):
continue # don't click cancel
self.debuglink.click(item_button)
if cb:
cb(i)
if gen:
try:
gen.send(None)
except StopIteration:
gen = None
self.debuglink.click(close_button)
i += 1
assert gen is None
def _visit_scrolled_vertical_menu(
self, menu_layout: LayoutContent, cb: t.Callable[[int], None] | None
self, menu_layout: LayoutContent, gen: t.Generator[None, t.Any, None] | None
) -> None:
assert self.debuglink.layout_type is LayoutType.Delizia
assert "ScrolledVerticalMenu" in menu_layout.all_components()
@@ -1052,8 +1056,9 @@ class DebugUI:
item_buttons = self.debuglink.screen_buttons.vertical_menu_items()
close_button = self.debuglink.screen_buttons.menu()
_prev, next = self.debuglink.screen_buttons.vertical_menu_prev_next()
i = 0
_prev, next_button = self.debuglink.screen_buttons.vertical_menu_prev_next()
if gen:
next(gen)
while True:
menu_items = menu_layout.find_unique_value_by_key(
key="menu_items", default=None, only_type=dict
@@ -1062,18 +1067,21 @@ class DebugUI:
if "cancel" in menu_item:
continue # don't click cancel
self.debuglink.click(item_button)
if cb:
cb(i)
if gen:
try:
gen.send(None)
except StopIteration:
gen = None
self.debuglink.click(close_button)
i += 1
if not menu_items["has_next"]:
break
self.debuglink.click(next)
self.debuglink.click(next_button)
menu_layout = self.debuglink.read_layout()
assert "ScrolledVerticalMenu" in menu_layout.all_components()
assert gen is None
def visit_menu_items(
self, cb: t.Callable[[int], None] | None = None
self, gen: t.Generator[None, t.Any, None] | None = None
) -> LayoutContent:
layout = self.debuglink.read_layout()
if (
@@ -1096,19 +1104,19 @@ class DebugUI:
if self.debuglink.layout_type is LayoutType.Eckhart:
menu_layout = self.debuglink.read_layout()
if "VerticalMenu" in menu_layout.all_components():
self._visit_vertical_menu(menu_layout, cb)
self._visit_vertical_menu(menu_layout, gen)
else:
raise UnexpectedMenuError(menu_layout.json_str)
elif self.debuglink.layout_type is LayoutType.Delizia:
menu_layout = self.debuglink.read_layout()
if "ScrolledVerticalMenu" in menu_layout.all_components():
self._visit_scrolled_vertical_menu(menu_layout, cb)
self._visit_scrolled_vertical_menu(menu_layout, gen)
elif "VerticalMenu" in menu_layout.all_components():
self._visit_vertical_menu(menu_layout, cb)
self._visit_vertical_menu(menu_layout, gen)
else:
raise UnexpectedMenuError(menu_layout.json_str)
elif self.debuglink.layout_type is LayoutType.Caesar:
assert cb is None, "Menu visiting callback not yet supported on Caesar"
assert gen is None, "Menu visiting callback not yet supported on Caesar"
menu_items_count = self.debuglink.read_layout().page_count()
for _ in range(menu_items_count):
self.debuglink.press_middle()

View File

@@ -746,12 +746,12 @@ class EthereumFlow:
# confirm intro
if info:
def check_address(i):
if i == 0:
assert self.debug.read_layout().title() in (
TR.ethereum__staking_stake_address,
TR.ethereum__staking_claim_address,
)
def check_address():
yield
assert self.debug.read_layout().title() in (
TR.ethereum__staking_stake_address,
TR.ethereum__staking_claim_address,
)
self.client.ui.visit_menu_items(check_address)