-
Notifications
You must be signed in to change notification settings - Fork 49
Description
Nothing breaks yet, but pytest now uses the tmp_path and tmp_path_factory fixtures over the (now "legacy") tmpdir and tmpdir_factory fixtures.
From the pytest docs (https://docs.pytest.org/en/7.4.x/how-to/tmp_path.html#the-tmpdir-and-tmpdir-factory-fixtures):
The
tmpdirandtmpdir_factoryfixtures are similar totmp_pathandtmp_path_factory, but use/return legacypy.path.localobjects rather than standardpathlib.Pathobjects.Note
These days, it is preferred to use tmp_path and tmp_path_factory.
In order to help modernize old code bases, one can run pytest with the legacypath plugin disabled:
pytest -p no:legacypathThis will trigger errors on tests using the legacy paths. It can also be permanently set as part of the addopts parameter in the config file.
While this should be a small internal change, it seems like still using tmpdir is keeping projects that use pytest-mpl form using the legacypath plugin to do validation (c.f. scikit-hep/pyhf#2384 (comment)).