Skip to content

Fix Qt and Windows pytest symlink teardown crashes; add right-click test - #12

Open
lukisch wants to merge 1 commit into
masterfrom
fix/qt-teardown-and-rightclick-test
Open

lukisch wants to merge 1 commit into
masterfrom
fix/qt-teardown-and-rightclick-test

Conversation

@lukisch

@lukisch lukisch commented Sep 28, 2026

Copy link
Copy Markdown
Collaborator

Ticket

T-20260928-295547351

Problem & Ursache

  1. Pytest Windows symlink teardown PermissionError: Auf Windows fuehrt cleanup_dead_symlinks in _pytest.pathlib bei der Pruefung von pytest-current (Directory-Symlink) ohne Sonderrechte oder bei abweichenden Berechtigungen zu PermissionError: [WinError 5] Zugriff verweigert: '...\pytest-current'. Dieser Fehler innerhalb von mp_path_factory._exit_stack.close() bei sessionfinish loeste Fatal Python error: Aborted bzw. STATUS_STACK_BUFFER_OVERRUN (0xC0000409) aus.
  2. Qt Widget Teardown: Top-Level Qt-Widgets blieben nach Tests akkumuliert im Speicher, und est_checksum_dialog_close_cancels_worker liess dlg ohne explizites close() / deleteLater() zurueck, was zu Qt-Destruktor-Fehlern bei Prozessende fuehren konnte.
  3. Fehlender gezielter Test: Der Zweig 'Rechtsklick selektiert Zeile vor Kontextaktionen' ( ile_browser.py:307-308) war nicht gezielt getestet.

Loesung

  • ests/conftest.py: Faengt OSError in _pytest.pathlib.cleanup_dead_symlinks und cleanup_numbered_dir auf Windows fail-safe ab.
  • ests/conftest.py: Automatischer Teardown-Hook schliesst und scheduled deleteLater() fuer verbleibende Top-Level Qt-Widgets nach Tests und spuelt die Event-Loop.
  • ests/test_checksum_dialog.py: est_checksum_dialog_close_cancels_worker ruft explizit dlg.close(), dlg.deleteLater() und �pp.processEvents() auf.
  • ests/test_store_regressions_20260928.py: est_right_click_on_unselected_row_selects_row prueft gezielt die Zeilenselektion bei Rechtsklick vor Kontextmenue-Aktionen.

Verifikation

  • Lokaler serieller Lauf python -m pytest -ra (ALLE 374 Tests ohne -n 2): 374 passed, 2 skipped, Exitcode 0.
  • Lauf mit -n 2: 11 passed, Exitcode 0.

  • uff check .: 0 Fehler.

…-click test

- Guard against Windows pytest-current symlink PermissionError during sessionfinish cleanup
- Cleanly teardown top-level Qt widgets in tests/conftest.py to avoid dangling QObjects at exit
- Explicitly close and schedule deleteLater() in test_checksum_dialog_close_cancels_worker
- Add regression test for right-click on unselected row selecting the row before context menu actions
- Fixes T-20260928-295547351
@github-actions

Copy link
Copy Markdown

Welcome! Thanks for your first pull request in this repository.

A maintainer will review it soon. Please make sure:

  • Your changes are tested
  • Documentation is updated if needed
  • The PR description explains what changed and why

Thanks for contributing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant