- Update to 7.2.0:
# Deprecations
- #10012: Update pytest.PytestUnhandledCoroutineWarning{.interpreted-text
role="class"} to a deprecation; it will raise an error in pytest 8.
- #10396: pytest no longer depends on the py library. pytest provides a
vendored copy of py.error and py.path modules but will use the py library
if it is installed. If you need other py.* modules, continue to install the
deprecated py library separately, otherwise it can usually be removed as a
dependency.
- #4562: Deprecate configuring hook specs/impls using attributes/marks.
- Instead use :pypytest.hookimpl{.interpreted-text role="func"} and
:pypytest.hookspec{.interpreted-text role="func"}.
For more details, see the docs
<legacy-path-hooks-deprecated>{.interpreted-text role="ref"}.
- #9886: The functionality for running tests written for nose has been
officially deprecated.
This includes:
* Plain setup and teardown functions and methods: this might catch users
by surprise, as setup() and teardown() are not pytest idioms, but part
of the nose support.
* Setup/teardown using the @with_setup decorator.
For more details, consult the deprecation docs
<nose-deprecation>{.interpreted-text role="ref"}.
# Features
- #9897: Added shell-style wildcard support to testpaths.
# Improvements
- #10218: @pytest.mark.parametrize() (and similar functions) now accepts any
Sequence[str] for the argument names, instead of just list[str] and
tuple[str, ...].
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=104
- Update to 7.1.1
* #9767: Fixed a regression in pytest 7.1.0 where some
conftest.py files outside of the source tree (e.g. in the
[site-packages]{.title-ref} directory) were not picked up.
- python-pytest5 is gone. Remove the libalts stopgap
- Update to 7.1.0
* Big changelog for 7.x series, see
https://docs.pytest.org/en/7.1.x/changelog.html for details
- Breaking changes:
* #8838: As per our policy, the following features have been
deprecated in the 6.X series and are now removed:
+ pytest._fillfuncargs function.
+ pytest_warning_captured hook - use pytest_warning_recorded
instead.
+ -k -foobar syntax - use -k 'not foobar' instead.
+ -k foobar: syntax.
* pytest.collect module - import from pytest directly.
* #9437: Dropped support for Python 3.6, which reached
end-of-life at 2021-12-23.
* #7259: The Node.reportinfo() function first return value type
has been expanded from py.path.local | str to os.PathLike[str]
| str.
Most plugins which refer to reportinfo() only define it as part
of a custom pytest.Item implementation. Since py.path.local is
a os.PathLike[str], these plugins are unaffacted.
Plugins and users which call reportinfo(), use the first return
value and interact with it as a py.path.local, would need to
adjust by calling py.path.local(fspath). Although preferably,
avoid the legacy py.path.local and use pathlib.Path, or use
item.location or item.path, instead.
Note: pytest was not able to provide a deprecation period for
this change.
* #8246: --version now writes version information to stdout
rather than stderr.
* #8733: Drop a workaround for pyreadline that made it work with
--pdb. The workaround was introduced in #1281 in 2015, however
since then pyreadline seems to have gone unmaintained, is
generating warnings, and will stop working on Python 3.10.
* #9061: Using pytest.approx() in a boolean context now raises an
error hinting at the proper usage.
It is apparently common for users to mistakenly use
pytest.approx like this:
assert pytest.approx(actual, expected)
While the correct usage is:
assert actual == pytest.approx(expected)
The new error message helps catch those mistakes.
* #9277: The pytest.Instance collector type has been removed.
Importing pytest.Instance or _pytest.python.Instance returns a
dummy type and emits a deprecation warning. See The
pytest.Instance collector for details.
* If you have concerns about the removal of a specific feature,
please add a comment to issue #9308.
- Drop patches
* pytest-pr8664-py3.10-test_trial_error-fail.patch
* pytest-pr9173-importlib-py310.patch
* pytest-pr9417-py3.10.1-fail.patch
OBS-URL: https://build.opensuse.org/request/show/965098
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=100
- Update to 6.2.1
* pytest now supports python3.6+ only.
* Directly constructing/calling some classes/functions is now deprecated
(see upstream changelog)
* The @pytest.yield_fixture decorator/function is now deprecated.
Use pytest.fixture() instead.
* No removals so far.
* Verbose mode now shows the reason that a test was skipped in the
test’s terminal line after the “SKIPPED”, “XFAIL” or “XPASS”.
* pytest now warns about unraisable exceptions and unhandled thread
exceptions that occur in tests on Python>=3.8.
* New pytester fixture, which is identical to testdir but its methods
return pathlib.Path when appropriate instead of py.path.local.
* It is now possible to construct a MonkeyPatch object directly as pytest.MonkeyPatch(),
in cases when the monkeypatch fixture cannot be used.
* Many more new features and bugfixes
OBS-URL: https://build.opensuse.org/request/show/860603
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=83
- Update to 6.1.2
* #7758: Fixed an issue where some files in packages are
getting lost from --lf even though they contain
tests that failed. Regressed in pytest 5.4.0.
* #7911: Directories created by tmpdir are now considered
stale after 3 days without modification (previous value
was 3 hours) to avoid deleting directories still in use
in long running test suites.
* #7815: Improve deprecation warning message for
pytest._fillfuncargs().
- remove old py.test2 and py.test3 entry points
- Fix py.test3 conflict for python3 flavors by alternatives
* gh#openSUSE/python-rpm-macros#66
* Make pytest the main alternative as py.test is the deprecated
name
- Fix gh#pytest-dev/pytest#7891 : require toml for build
OBS-URL: https://build.opensuse.org/request/show/844811
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=76
* Paths appearing in error messages are now correct in case the current working
directory has changed since the start of the session.
* Support deleting paths longer than 260 characters on windows created inside tmpdir.
* Prevent pytest from printing ConftestImportFailure traceback to stdout.
* Prevent hiding the underlying exception when ConfTestImportFailure is raised.
* Fix regression where running with --pdb would call the tearDown methods
of unittest.TestCase subclasses for skipped tests.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=61
* Fix crash with captured output when using the capsysbinary fixture.
* Ensure a unittest.IsolatedAsyncioTestCase is actually awaited.
* Fix TerminalRepr instances to be hashable again.
* Fix regression where functions registered with TestCase.addCleanup
were not being called on test failures.
* Allow users to still set the deprecated TerminalReporter.writer attribute.
* Revert “tmpdir: clean up indirection via config for factories
* Fixed regression: asyncbase.TestCase tests are executed correctly again
* Fix File.from_constructor so it forwards extra keyword arguments to the constructor.
* Classes with broken __getattribute__ methods are displayed correctly during failures.
* Fix _is_setup_py for files encoded differently than locale.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=59
* #6909: Revert the change introduced by #6330, which required all
arguments to @pytest.mark.parametrize to be explicitly defined
in the function signature.
* #6910: Fix crash when plugins return an unknown stats while using
the --reportlog option.
* #6316: Matching of -k EXPRESSION to test names is now case-insensitive.
* #6443: Plugins specified with -p are now loaded after internal plugins
* #6637: Removed the long-deprecated pytest_itemstart hook.
* #6673: Reversed / fix meaning of “+/-” in error diffs. “-” means that
sth. expected is missing in the result and “+” means that there are
unexpected extras in the result.
- Remove merged patch tidy-up-embeddedfile.patch
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=58
* Captured output during teardown is shown with -rP
* Fix a pytest-xdist crash when dealing with exceptions raised
in subprocesses created by the multiprocessing module.
* FixtureDef objects now properly register their finalizers
with autouse and parameterized fixtures that execute before
them in the fixture stack so they are torn down at the right times,
and in the right order.
* Fix parsing of outcomes containing multiple errors with testdir results
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=53
* junitxml: Logs for failed test are now passed to junit report in
case the test fails during call phase.
* supporting files in the .pytest_cache directory are kept with
--cache-clear, which only clears cached values now.
* Fix assertion rewriting for egg-based distributions and editable
installs (pip install --editable).
* Improve check for misspelling of pytest.mark.parametrize.
* Handle exit.Exception raised in notify_exception (via pytest_internalerror), e.g. when quitting pdb from post mortem.
* default value of junit_family option will change to xunit2 in
pytest 6.0, given that this is the version supported by default in
modern tools that manipulate this type of file.
* In order to smooth the transition, pytest will issue a warning in
case the --junitxml option is given in the command line but
junit_family is not explicitly configured in pytest.ini.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=50
* #5206: Fix --nf to not forget about known nodeids with partial test selection.
* #5906: Fix crash with KeyboardInterrupt during --setup-show.
* #5946: Fixed issue when parametrizing fixtures with numpy arrays (and possibly other sequence-like types).
* #6044: Properly ignore FileNotFoundError exceptions when trying to remove old temporary directories, for instance when multiple processes try to remove the same directory (common with pytest-xdist for example).
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=47
* #5902: Fix warnings about deprecated cmp attribute in attrs>=19.2.
* #1682: Passing arguments to pytest.fixture() as positional arguments is deprecated - pass them as a keyword argument instead.
* #1682: The scope parameter of @pytest.fixture can now be a callable that receives the fixture name and the config object as keyword-only parameters. See the docs for more information.
* #5764: New behavior of the --pastebin option: failures to connect to the pastebin server are reported, without failing the pytest run
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=45
* #2270: Fixed self reference in function-scoped fixtures defined plugin classes: previously self would be a reference to a test class, not the plugin class.
* #570: Fixed long standing issue where fixture scope was not respected when indirect fixtures were used during parametrization.
* #5782: Fix decoding error when printing an error response from --pastebin.
* #5786: Chained exceptions in test and collection reports are now correctly serialized, allowing plugins like pytest-xdist to display them properly.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=41
* Removed:
+ Request.getfuncargvalue: use Request.getfixturevalue instead.
+ pytest.raises and pytest.warns no longer support strings as the second argument.
+ message parameter of pytest.raises.
+ pytest.raises, pytest.warns and ParameterSet.param now use native keyword-only
syntax. This might change the exception message from previous versions, but
they still raise TypeError on unknown keyword arguments as before.
+ pytest.config global variable.
+ tmpdir_factory.ensuretemp method.
+ pytest_logwarning hook.
+ RemovedInPytest4Warning warning type.
+ request is now a reserved name for fixtures.
+ Removed unused support code for unittest2.
+ pytest.fail, pytest.xfail and pytest.skip no longer support bytes
for the message argument.
* New Config.invocation_args attribute containing the unchanged arguments passed to pytest.main().
* New NUMBER option for doctests to ignore irrelevant differences in floating-point numbers
* JUnit XML now includes a timestamp and hostname in the testsuite tag.
* Fix RuntimeError/StopIteration when trying to collect package with “__init__.py” only.
* Warnings issued during pytest_configure are explicitly not treated as errors,
even if configured as such, because it otherwise completely breaks pytest.
* The XML file produced by --junitxml now correctly contain a <testsuites> root element.
* Fixed using multiple short options together in the command-line (for example -vs) in Python 3.8+.
* Fix issue where tmp_path and tmpdir would not remove directories containing
files marked as read-only, which could lead to pytest crashing when executed
a second time with the --basetemp option.
* Replace importlib_metadata backport with importlib.metadata from the standard
library on Python 3.8+.
* Improve type checking for some exception-raising functions (pytest.xfail,
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=40
- update to 3.10.1
* Fix nested usage of debugging plugin (pdb)
* Block the stepwise plugin if cacheprovider is also blocked, as one
depends on the other.
* Parse minversion as an actual version and not as dot-separated strings.
* Fix duplicate collection due to multiple args matching the same packages.
* Fix item.nodeid with resolved symlinks.
* Fix collection of direct symlinked files, where the target does not match
python_files.
* Fix TypeError in report_collect with _collect_report_last_write.
OBS-URL: https://build.opensuse.org/request/show/648992
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=21
- update to 3.10.0
* Resume capturing output after continue with __import__("pdb").set_trace().
* Add -sw, --stepwise as an alternative to --lf -x for stopping at the first
failure, but starting the next test invocation from that test.
* Make --color emit colorful dots when not running in verbose mode.
* Improve performance with collection reporting in non-quiet mode with terminals.
* The "collecting …" message is only printed/updated every 0.5s.
* Fix false RemovedInPytest4Warning: usage of Session... is deprecated,
please use pytest warnings.
* Fix problems with running tests in package __init__.py files.
* Swallow warnings during anonymous compilation of source.
* Fix access denied error when deleting stale directories
created by tmpdir / tmp_path.
* Naming a fixture request will now raise a warning: the request fixture
is internal and should not be overwritten as it will lead to internal errors.
* Handle (ignore) exceptions raised during collection, e.g.
with Django's LazySettings proxy class.
* Added missing documentation about the fact that module names passed
to filter warnings are not regex-escaped.
* Display cachedir also in non-verbose mode if non-default.
* pdb: improve message about output capturing with set_trace.
* Do not display "IO-capturing turned off/on" when -s is used to avoid confusion.
* Improve message and stack level of warnings issued by monkeypatch.setenv
when the value of the environment variable is not a str.
* Fix "ValueError: Plugin already registered" with conftest plugins via symlink.
* Handle race condition between creation and deletion of temporary folders.
* Fix bug where the warning summary at the end of the test session was
not showing the test where the warning was originated.
* Fix regression when stacklevel for warnings was passed as positional
argument on python2.
OBS-URL: https://build.opensuse.org/request/show/646340
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=19