pytest icon indicating copy to clipboard operation
pytest copied to clipboard

Deprecate and remove nose plugin

Open nicoddemus opened this issue 3 years ago • 3 comments

nose has long been in maintenance only mode, and we support it via our nose.py plugin.

The nose.py plugin however is not trivial to maintain, and it dips its toes in a few places through the code:

https://github.com/pytest-dev/pytest/blob/d949b3f7d98fa7641055251765d3d6d0b1ef719c/src/_pytest/python.py#L382-L389

https://github.com/pytest-dev/pytest/blob/d949b3f7d98fa7641055251765d3d6d0b1ef719c/src/_pytest/python.py#L534

https://github.com/pytest-dev/pytest/blob/d949b3f7d98fa7641055251765d3d6d0b1ef719c/src/_pytest/python.py#L869

https://github.com/pytest-dev/pytest/blob/d949b3f7d98fa7641055251765d3d6d0b1ef719c/src/_pytest/unittest.py#L353-L355

Also it can cause confusion such as in https://github.com/pytest-dev/pytest/issues/9549.

Perhaps it is time to deprecate nose, and eventually removing it? If there is a large test suite which still requires this, they can just pin pytest until the last version that still supports it.

It could become a third party plugin. but unless someone volunteers to do it, I don't think it should be pytest's core responsibility to maintain such a plugin.


How to deprecate it?

nose.py actually just handles calling the nose-specific setup and teardown methods:

https://github.com/pytest-dev/pytest/blob/d949b3f7d98fa7641055251765d3d6d0b1ef719c/src/_pytest/nose.py#L9-L27

We could issue a deprecation warning when one of those functions are called, which AFAIK is basically what our nose support entails.

nicoddemus avatar Apr 24 '22 00:04 nicoddemus

:+1:

RonnyPfannschmidt avatar Apr 24 '22 00:04 RonnyPfannschmidt

@nicoddemus ok if I roll with this one?

symonk avatar May 01 '22 14:05 symonk

Sure thing @symonk, go ahead!

nicoddemus avatar May 01 '22 15:05 nicoddemus