- Add fix-test-raising-repr.patch gh#pytest-dev/pytest#10473, this make it
compatible with latest release of python-exceptiongroup
- Remove python_module macro definition
- 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, ...].
(Note that str, which is itself a Sequence[str], is still treated as a
comma-delimited name list, as before).
- #10381: The --no-showlocals flag has been added. This can be passed
directly to tests to override --showlocals declared through addopts.
- #3426: Assertion failures with strings in NFC and NFD forms that normalize
to the same string now have a dedicated error message detailing the issue,
and their utf-8 representation is expresed instead.
- #7337: A warning is now emitted if a test function returns something other
than [None]{.title-ref}. This prevents a common mistake among beginners
that expect that returning a [bool]{.title-ref} (for example [return foo(a,
b) == result]{.title-ref}) would cause a test to pass or fail, instead of
using [assert]{.title-ref}.
- #8508: Introduce multiline display for warning matching via
:pypytest.warns{.interpreted-text role="func"} and enhance match comparison
for :py_pytest._code.ExceptionInfo.match{.interpreted-text role="func"} as
returned by :pypytest.raises{.interpreted-text role="func"}.
- #8646: Improve :pypytest.raises{.interpreted-text role="func"}. Previously
passing an empty tuple would give a confusing error. We now raise
immediately with a more helpful message.
- #9741: On Python 3.11, use the standard library's tomllib{.interpreted-text
role="mod"} to parse TOML. tomli{.interpreted-text role="mod"}` is no
longer a dependency on Python 3.11.
- #9742: Display assertion message without escaped newline characters with
-vv.
- #9823: Improved error message that is shown when no collector is found for
a given file.
- #9873: Some coloring has been added to the short test summary.
- #9883: Normalize the help description of all command-line options.
- #9920: Display full crash messages in short test summary info, when runng
in a CI environment.
- #9987: Added support for hidden configuration file by allowing .pytest.ini
as an alternative to pytest.ini.
# Bug Fixes
- #10150: sys.stdin{.interpreted-text role="data"} now contains all expected
methods of a file-like object when capture is enabled.
- #10382: Do not break into pdb when raise unittest.SkipTest() appears
top-level in a file.
- #7792: Marks are now inherited according to the full MRO in test classes.
Previously, if a test class inherited from two or more classes, only marks
from the first super-class would apply.
When inheriting marks from super-classes, marks from the sub-classes are
now ordered before marks from the super-classes, in MRO order. Previously
it was the reverse.
When inheriting marks from super-classes, the [pytestmark]{.title-ref}
attribute of the sub-class now only contains the marks directly applied to
it. Previously, it also contained marks from its super-classes. Please note
that this attribute should not normally be accessed directly; use
pytest.Node.iter_markers{.interpreted-text role="func"} instead.
- #9159: Showing inner exceptions by forcing native display in
ExceptionGroups even when using display options other than --tb=native. A
temporary step before full implementation of pytest-native display for
inner exceptions in ExceptionGroups.
- #9877: Ensure caplog.get_records(when) returns current/correct data after
invoking caplog.clear().
# Improved Documentation
- #10344: Update information on writing plugins to use pyproject.toml instead
of setup.py.
- #9248: The documentation is now built using Sphinx 5.x (up from 3.x
previously).
- #9291: Update documentation on how pytest.warns{.interpreted-text
role="func"} affects DeprecationWarning{.interpreted-text role="class"}.
- pytest 7.1.3 (2022-08-31)
# Bug Fixes
- #10060: When running with --pdb, TestCase.tearDown is no longer called for
tests when the class has been skipped via unittest.skip or
pytest.mark.skip.
- #10190: Invalid XML characters in setup or teardown error messages are now
properly escaped for JUnit XML reports.
- #10230: Ignore .py files created by pyproject.toml-based editable builds
introduced in pip 21.3.
- #3396: Doctests now respect the --import-mode flag.
- #9514: Type-annotate FixtureRequest.param as Any as a stop gap measure
until 8073{.interpreted-text role="issue"} is fixed.
- #9791: Fixed a path handling code in rewrite.py that seems to work fine,
but was incorrect and fails in some systems.
- #9917: Fixed string representation for pytest.approx{.interpreted-text
role="func"} when used to compare tuples.
# Improved Documentation
- #9937: Explicit note that tmpdir{.interpreted-text role="fixture"} fixture
is discouraged in favour of tmp_path{.interpreted-text role="fixture"}.
OBS-URL: https://build.opensuse.org/request/show/1040176
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest?expand=0&rev=71
- 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
- Using URLs for Patches looks like a great idea, but it is too
unstable. Please, don't.
- Add pytest-pr8664-py3.10-test_trial_error-fail.patch
* gh#pytest-dev/pytest#8664
- Add pytest-pr9417-py3.10.1-fail.patch
* gh#pytest-dev/pytest#9417
- Disable libalternatives usage until all python-pytest* packages
are on the same page (see sr#926611)
- Disable all update-alternatives install calls if libalternatives
is used.
- Use libalternatives instead of update-alternatives.
OBS-URL: https://build.opensuse.org/request/show/941699
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest?expand=0&rev=67
- 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/865459
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest?expand=0&rev=63
- 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
- Rebase and re-add tidy-up-embeddedfile.patch, it was only partially merged
upstream.
- update to 5.4.3
* 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/request/show/813080
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest?expand=0&rev=56