The `unittest` `-b` command line option hides the output of `pdb`.
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 77.2k
- Forks
- 35.9k
- PR merge metrics
- PR metrics pending
Description
Bug report
Bug description:
import unittest
class Test(unittest.TestCase):
def test(self):
print("hello")
breakpoint()
print("goodbye")
If I invoke this like:
$ python3 -m unittest -b repo.py
Nothing is printed and the process sits waiting on input.
Whereas without the -b option we get the Pdb prompt:
$ python3 -m unittest repo.py
hello
> /home/matthew/code/coveragepy_issue_1963/repo.py(7)test()
-> print("goodbye")
(Pdb)
I would expect that the debugger prompt would not be swallowed up by the "-b" option, or that some error message would pop up saying that the "-b" option and the debugger were incompatible.
CPython versions tested on:
3.12
Operating systems tested on:
Linux
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the reported python3 -m unittest -b repo.py reproducer and compare it with the unbuffered command. Trace how unittest's -b output buffering interacts with breakpoint() and pdb, then add coverage for the interaction; done means the debugger prompt is usable or an explicit incompatibility error is produced.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- devtools, testing-qa
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100