Skip to content

PuDBWrapper#pytest_exception_interact: Remove call to self.disable_io_capture()#26

Open
stdedos wants to merge 1 commit intowronglink:masterfrom
stdedos:fix/remove-double-prologue
Open

PuDBWrapper#pytest_exception_interact: Remove call to self.disable_io_capture()#26
stdedos wants to merge 1 commit intowronglink:masterfrom
stdedos:fix/remove-double-prologue

Conversation

@stdedos
Copy link

@stdedos stdedos commented Feb 11, 2023

It is not needed, since the calling chain:

  • _enter_pudb
  • post_mortem
  • pudb._get_debugger()

will still call PuDBWrapper#_get_debugger, which also calls self.disable_io_capture()

Avoids the double-prologue:

$ pytest -x --pudb
======================================= test session starts ========================================
platform linux -- Python 3.9.16, pytest-7.2.1, pluggy-1.0.0
rootdir: .., configfile: pyproject.toml
plugins: pycharm-0.7.0, pudb-0.7.0, dash-2.8.1, cov-4.0.0
collected 1726 items

../tests/test_parsers.py F
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> entering PuDB (IO-capturing turned off) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>> entering PuDB (IO-capturing turned off) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

===================================== short test summary info ======================================
FAILED ../tests/test_parsers.py::test_parse[..] - KeyError: "None of ['taskID'] are in the columns"
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
======================================== 1 failed in 2.48s =========================================

vs

$ pytest -x --pudb
======================================= test session starts ========================================
platform linux -- Python 3.9.16, pytest-7.2.1, pluggy-1.0.0
rootdir: .., configfile: pyproject.toml
plugins: pycharm-0.7.0, pudb-0.7.0, dash-2.8.1, cov-4.0.0
collected 1726 items

../tests/test_parsers.py F
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> entering PuDB (IO-capturing turned off) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

===================================== short test summary info ======================================
FAILED ../tests/test_parsers.py::test_parse[..] - KeyError: "None of ['taskID'] are in the columns"
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
======================================== 1 failed in 3.62s =========================================

Cannot do the opposite thing, since then pu.db and friends will loose the opportunity to do prologue
(pytest_exception_interact is called only via the --pudb flag)

Signed-off-by: Stavros Ntentos 133706+stdedos@users.noreply.github.com

@stdedos stdedos force-pushed the fix/remove-double-prologue branch 2 times, most recently from a25567a to 7baecab Compare August 13, 2023 16:37
…_io_capture()`

It is not needed, since the calling chain:
- `_enter_pudb`
- `post_mortem`
- `pudb._get_debugger()`

will still call `PuDBWrapper#_get_debugger`, which also calls `self.disable_io_capture()`

Avoids the double-prologue:

```console
$ pytest -x --pudb
======================================= test session starts ========================================
platform linux -- Python 3.9.16, pytest-7.2.1, pluggy-1.0.0
rootdir: .., configfile: pyproject.toml
plugins: pycharm-0.7.0, pudb-0.7.0, dash-2.8.1, cov-4.0.0
collected 1726 items

../tests/test_parsers.py F
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> entering PuDB (IO-capturing turned off) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>> entering PuDB (IO-capturing turned off) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

===================================== short test summary info ======================================
FAILED ../tests/test_parsers.py::test_parse[..] - KeyError: "None of ['taskID'] are in the columns"
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
======================================== 1 failed in 2.48s =========================================
```

vs

```console
$ pytest -x --pudb
======================================= test session starts ========================================
platform linux -- Python 3.9.16, pytest-7.2.1, pluggy-1.0.0
rootdir: .., configfile: pyproject.toml
plugins: pycharm-0.7.0, pudb-0.7.0, dash-2.8.1, cov-4.0.0
collected 1726 items

../tests/test_parsers.py F
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> entering PuDB (IO-capturing turned off) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

===================================== short test summary info ======================================
FAILED ../tests/test_parsers.py::test_parse[..] - KeyError: "None of ['taskID'] are in the columns"
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
======================================== 1 failed in 3.62s =========================================
```

Cannot do the opposite thing, since then `pu.db` and friends
will loose the opportunity to do prologue
(`pytest_exception_interact` is called only via the `--pudb` flag)

Additionally, update `.gitignore`
(via github/gitignore@8e67b94)

Signed-off-by: Stavros Ntentos <133706+stdedos@users.noreply.github.com>
@stdedos stdedos force-pushed the fix/remove-double-prologue branch from 7baecab to d9efd87 Compare August 13, 2023 17:21
alexfikl pushed a commit to alexfikl/pytest-pudb that referenced this pull request Jun 20, 2025
@alexfikl alexfikl mentioned this pull request Jun 20, 2025
alexfikl pushed a commit to alexfikl/pytest-pudb that referenced this pull request Jun 20, 2025
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