prompt-toolkit / prompt-toolkit/python-prompt-toolkit

Infinite hang in test_interrupts and test_emacs_arguments_for_all_commands on pypy3

Open
#1,175 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
10.6k
Forks
815
PR merge metrics
No merged PRs in 30d

Description

test_interrupts and test_emacs_arguments_for_all_commands both cause infinite hangs when testing on pypy3, all the other tests complete successfully. Any of the individual tests https://github.com/prompt-toolkit/python-prompt-toolkit/blob/beb9b2658e8c4af76dade6ee9fa40ff91480ed87/tests/test_cli.py#L217-L218 will complete successfully, but as soon as the second input is fed to the cli the infinite hang occurs. The git bisect for this points to c7851c09ffbfa7d06458408abee77ab6f548852d which is of course thoroughly unhelpful given that is the start of the 3.0 changes.

pypy3 -m pytest --verbose -k test_interrupts
pypy3 -m pytest --verbose -k test_emacs_arguments_for_all_commands

All the rest are ok.

pypy3 -m pytest --verbose -k 'not test_interrupts and not test_emacs_arguments_for_all_commands'

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the hang with the pypy3 commands in the issue, then inspect tests/test_cli.py around lines 217-218 and the two named tests. Compare the behavior when one versus two inputs are fed to the CLI. Done means both tests complete without hanging on pypy3 while the remaining test suite still passes.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.