Skip to content

CI: flaky Textual TUI tests on Windows (NoMatches on #status-bar/#history-table) block PRs #50

Description

@elkaix

Symptom

The test (windows-latest, 3.12) leg of ci.yml intermittently fails with:

textual.worker.WorkerFailed: Worker raised exception: NoMatches("No nodes match '#status-bar' on Screen(id='_default')")

The failing TUI test varies between runs (observed: tests/test_tui.py::test_run_cleans_the_selected_file_and_reinspects, tests/test_tui.py::test_clean_now_runs_the_plan_and_shows_the_run_pane, tests/test_layer_b_end_to_end.py::test_tui_run_performs_a_live_rewrite) but the root error is always the same: a worker queries a selector before the widget is mounted.

Evidence (last ~1 hour, unrelated diffs)

Since ci-green is a required check, this flake randomly blocks PR merges.

Suggested direction

  • Assert/wait for widget mount before workers query selectors (e.g. pilot + explicit mount wait, or App.run_test() with wait_for_animation=False + polling query_exclusive/retry)
  • Or mark the TUI tests pytest.mark.flaky(reruns=N) on Windows as a stopgap
  • Or serialize the TUI tests (some Textual flakes are load-order related)

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions