`ResourceWarning`/`PytestUnraisableExceptionWarning` with version 1.7.5
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 72/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- python
- Ambito
- testing-qa
Direzione di ricerca
Inizia da src/pytest_forked/init.py alle righe citate 101-106 e riproduci una funzione pytest decorata con @pytest.mark.forked sulla versione 1.7.5. Verifica la gestione dei file temporanei di stdout e stderr; il lavoro è completato quando il test forked termina senza errori ResourceWarning o PytestUnraisableExceptionWarning dovuti a file non chiusi.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Pytest functions decorated with @pytest.mark.forked that were working fine on version 1.6.0 (previous PyPI release) are now failing on 1.7.5 (full error at the end):
ExceptionGroup: multiple unraisable exception warnings (2 sub-exceptions)
ResourceWarning: unclosed file <_io.TextIOWrapper name='.../stderr' mode='w' encoding='UTF-8'>
I believe it's due to this code which calls flush() without close(), introduced in c33e4e1efad870b3b9aa308e4ec8ac145884c83d:
The test fails with an ExceptionGroup containing two PytestUnraisableExceptionWarning errors, one each for unclosed stdout and stderr temp files.
Full error
============================= test session starts ==============================
platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0
rootdir: …
configfile: pytest.ini
plugins: anyio-4.14.0, forked-1.7.5
collected 1 item
tests/open_browser.py E [100%]
==================================== ERRORS ====================================
________________________ ERROR at setup of pytest_fork _________________________
+ Exception Group Traceback (most recent call last):
| File "…/.venv/lib/python3.14/site-packages/_pytest/runner.py", line 361, in from_call
| result: TResult | None = func()
| ~~~~^^
| File "…/.venv/lib/python3.14/site-packages/_pytest/runner.py", line 250, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
| File "…/.venv/lib/python3.14/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "…/.venv/lib/python3.14/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "…/.venv/lib/python3.14/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "…/.venv/lib/python3.14/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| ~~~~~~~~~~~~~~^^^^^^^^^^^
| File "…/.venv/lib/python3.14/site-packages/_pytest/logging.py", line 858, in pytest_runtest_setup
| yield
| File "…/.venv/lib/python3.14/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| ~~~~~~~~~~~~~~^^^^^^^^^^^
| File "…/.venv/lib/python3.14/site-packages/_pytest/capture.py", line 895, in pytest_runtest_setup
| return (yield)
| ^^^^^
| File "…/.venv/lib/python3.14/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| File "…/.venv/lib/python3.14/site-packages/_pytest/unraisableexception.py", line 178, in pytest_runtest_setup
| collect_unraisable(item.config)
| ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
| File "…/.venv/lib/python3.14/site-packages/_pytest/unraisableexception.py", line 81, in collect_unraisable
| raise ExceptionGroup("multiple unraisable exception warnings", errors)
| ExceptionGroup: multiple unraisable exception warnings (2 sub-exceptions)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "…/.venv/lib/python3.14/site-packages/_pytest/capture.py", line 425, in resume
| setattr(sys, self.name, self.tmpfile)
| ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ResourceWarning: unclosed file <_io.TextIOWrapper name='/var/folders/mx/t3rtb4cn7xxfz8w_pcfdffhm0000gn/T/tmpq33e1t7y/stderr' mode='w' encoding='UTF-8'>
|
| The above exception was the direct cause of the following exception:
|
| Traceback (most recent call last):
| File "…/.venv/lib/python3.14/site-packages/_pytest/unraisableexception.py", line 67, in collect_unraisable
| warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
| ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| pytest.PytestUnraisableExceptionWarning: Exception ignored while finalizing file <_io.FileIO name='/var/folders/mx/t3rtb4cn7xxfz8w_pcfdffhm0000gn/T/tmpq33e1t7y/stderr' mode='wb' closefd=True>: None
|
+---------------- 2 ----------------
| Traceback (most recent call last):
| File "…/.venv/lib/python3.14/site-packages/_pytest/capture.py", line 425, in resume
| setattr(sys, self.name, self.tmpfile)
| ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ResourceWarning: unclosed file <_io.TextIOWrapper name='/var/folders/mx/t3rtb4cn7xxfz8w_pcfdffhm0000gn/T/tmpq33e1t7y/stdout' mode='w' encoding='UTF-8'>
|
| The above exception was the direct cause of the following exception:
|
| Traceback (most recent call last):
| File "…/.venv/lib/python3.14/site-packages/_pytest/unraisableexception.py", line 67, in collect_unraisable
| warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
| ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| pytest.PytestUnraisableExceptionWarning: Exception ignored while finalizing file <_io.FileIO name='/var/folders/mx/t3rtb4cn7xxfz8w_pcfdffhm0000gn/T/tmpq33e1t7y/stdout' mode='wb' closefd=True>: None
|
+------------------------------------
- Lingua principale
- Python
- Stelle
- 83
- Fork
- 29
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di pytest-dev/pytest-forked
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 62/100
pytest-dev/pytest-forked#84 ·
-
Fork per subpathAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
pytest-dev/pytest-forked#94 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
pytest-dev/pytest-forked#88 · 12 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
pytest-dev/pytest-forked#87 · 1 reazione ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 48/100
pytest-dev/pytest-forked#85 · 3 commenti ·
Tutte le issue di pytest-dev/pytest-forked
Issue simili
-
customer-reported
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Azure/azure-cli#34150 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
community-request
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 95/100
NVIDIA-NeMo/Curator#2464 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
weblate-discover crashes with an unhandled FileNotFoundError when the directory does not existAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
WeblateOrg/translation-finder#1099 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
trezor/trezor-firmware#7997 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno