test: structure tests for control-deck side-by-side mode

- test_deck_stack_exists: _deck_stack present; default shows _control_deck.
- test_pinning_two_panels_switches_to_split: pin 2 panels + refresh →
  stack shows _deck_split_container.

Pin via _pinned flags directly (not the toggle handler) so no QSettings
write leaks into other function-scoped windows; existing 6 tests run in
default/tabbed state and still pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-06-13 12:36:08 +02:00
parent 780832d4aa
commit e820c106af
+16
View File
@@ -54,3 +54,19 @@ def test_menu_only_buttons_not_in_deck(win):
assert win._btn_train not in deck_btns assert win._btn_train not in deck_btns
assert win._btn_scan_all not in deck_btns assert win._btn_scan_all not in deck_btns
assert win._btn_hide_subcats not in deck_btns assert win._btn_hide_subcats not in deck_btns
def test_deck_stack_exists(win):
# The deck is wrapped in a stack so it can swap tabbed <-> side-by-side.
# Default (nothing pinned) shows the tabbed control deck.
assert win._deck_stack is not None
assert win._deck_stack.currentWidget() is win._control_deck
def test_pinning_two_panels_switches_to_split(win):
# Pin two panels directly (avoid the toggle handler so no QSettings write
# leaks into other test windows) and refresh.
win._tab_export._pinned = True
win._tab_crop._pinned = True
win._refresh_deck_layout()
assert win._deck_stack.currentWidget() is win._deck_split_container