Separately, some core devs felt burned by the nose->pytest transition and were reluctant to use pytest tooling directly, instead importing into skimage._shared.testing and using that as an adapter — that way if we had to migrate again we could do it.
However, I always thought that was overkill. Pytest is now standard across the ecosystem and I feel comfortable depending directly on it. So I’m on using pytest.warns directly.
I am in favor of this. In several prior PRs I had done a similar thing for testing.raises → pytest.raises, but only in the files that were already being modified for the PR. Another general refactoring I have done periodically was to remove inhertance from unittest.TestCase for class-based tests. There are likely still remaining cases of each of those that could be addressed as well.