Intermittent hang in CI on textual-macOS testbed tests.
- Dominant language
- Python
- Stars
- 5.4k
- Forks
- 827
- Avg merge
- 9h 45m
- Merged PRs (30d)
- 58
Description
### Describe the bug
We are seeing an intermittent hang in the textual-macOS tests in CI.
The CI pass is terminated after 20 minutes; when the suite passes, it runs in under a minute.
### How to reproduce the bug
Run the testbed test suite using the Textual backend under macOS.
### Minimum example code
```shell
briefcase dev -a testbed-textual
```
### Screenshots
_No response_
### Environment details
- Operating system and version: macOS 15
- Python version: 3.12
- Software versions:
- Toga: main as of July 17 2026
### Logs
The test suite fails after the text input `test_quote_dash_substitution_disabled` tests:
```
tests/widgets/test_textinput.py::test_value_not_hidden PASSED [ 81%]
tests/widgets/test_textinput.py::test_on_change_programmatic[True-] PASSED [ 82%]
tests/widgets/test_textinput.py::test_on_change_programmatic[True-placeholder] PASSED [ 83%]
tests/widgets/test_textinput.py::test_on_change_programmatic[False-] PASSED [ 83%]
tests/widgets/test_textinput.py::test_on_change_programmatic[False-placeholder] PASSED [ 84%]
tests/widgets/test_textinput.py::test_on_change_user PASSED [ 85%]
tests/widgets/test_textinput.py::test_on_change_user_after_initial_value PASSED [ 85%]
tests/widgets/test_textinput.py::test_quote_dash_substitution_disabled[""] PASSED [ 86%]
tests/widgets/test_textinput.py::test_quote_dash_substitution_disabled[''] PASSED [ 87%]
tests/widgets/test_textinput.py::test_quote_dash_substitution_disabled[--] PASSED [ 87%]
tests/widgets/test_textinput.py::test_quote_dash_substitution_disabled[---] PASSED [ 88%]
tests/widgets/test_textinput.py::test_quote_dash_substitution_disabled[Humorless "test" input] PASSED [ 89%]
tests/widgets/test_textinput.py::test_quote_dash_substitution_disabled[Can't 'bee' bothered] PASSED [ 89%]
tests/widgets/test_textinput.py::test_quote_dash_substitution_disabled[Bee dashing--or fail miserably. --- No One Ever] PASSED [ 90%]
Error: The action 'Test App' has timed out after 20 minutes.
```
### Additional context
_No response_
Contributor guide
Research direction
Run `briefcase dev -a testbed-textual` on macOS and inspect the testbed run around `tests/widgets/test_textinput.py`, especially after `test_quote_dash_substitution_disabled`. Reproduce the intermittent timeout and use the reported test boundary to narrow down where the suite stops progressing. Done means the textual-macOS testbed suite completes reliably without the 20-minute CI timeout.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- ci-cd, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100