pytest icon indicating copy to clipboard operation
pytest copied to clipboard

Twisted: Incompability with pytest.skip and Twisted 25.5

Open nicoddemus opened this issue 7 months ago • 2 comments

The recently released twisted 25.5.0 is causing the test test_trial_exceptions_with_skips to fail:

https://github.com/pytest-dev/pytest/actions/runs/15509383216/job/43668300225?pr=13496

Created this MWE:

from __future__ import annotations

from twisted.trial import unittest

import pytest


class TC(unittest.TestCase):
    def test_hello(self):
        pytest.skip("skip_in_method")
λ uvx --with pytest,twisted==24.11 pytest testing\test_trial.py -q
s                                                                                                                                                                                                         [100%]
1 skipped in 0.13s
λ uvx --with pytest,twisted==25.5 pytest testing\test_trial.py -q
F                                                              [100%]
============================= FAILURES ==============================
___________________________ TC.test_hello ___________________________
skip_in_method

During handling of the above exception, another exception occurred:
'NoneType' object is not iterable

During handling of the above exception, another exception occurred:
NOTE: Incompatible Exception Representation, displaying natively:

Skipped: skip_in_method

====================== short test summary info ======================
FAILED testing/test_trial.py::TC::test_hello - Failed: NOTE: Incompatible Exception Representation, displaying n...
1 failed in 0.14s

nicoddemus avatar Jun 07 '25 16:06 nicoddemus

See analysis here https://github.com/twisted/twisted/issues/12467#issuecomment-2955458914. pytest patches twisted.python.failure.Failure.__init__ and it breaks in Twisted 25.5 because there's an additional except/raise pair in Twisted test framework code.

p12tic avatar Jun 09 '25 11:06 p12tic

Thanks @p12tic appreciate the link.

We are happy to fix pytest, after all we are patching the internals. Do you have any suggestion on how we can fix pytest?

nicoddemus avatar Jun 09 '25 12:06 nicoddemus