Path to this page:
Subject: CVS commit: pkgsrc/devel
From: Adam Ciarcinski
Date: 2020-05-16 10:00:01
Message id: 20200516080002.157D5FB27@cvs.NetBSD.org
Log Message:
py-test: updated to 5.4.2
pytest 5.4.2:
Bug Fixes
* 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” 6767 as it \
breaks pytest-xdist.
* 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.
pytest 5.4.1:
Bug Fixes
* Revert the change introduced by 6330, which required all arguments to \
@pytest.mark.parametrize to be explicitly defined in the function signature.
The intention of the original change was to remove what was expected to be an \
unintended/surprising behavior, but it turns out many people relied on it, so \
the restriction has been reverted.
* Fix crash when plugins return an unknown stats while using the --reportlog option.
pytest 5.4.0:
Breaking Changes
* Matching of -k EXPRESSION to test names is now case-insensitive.
* Plugins specified with -p are now loaded after internal plugins, which results \
in their hooks being called before the internal ones.
This makes the -p behavior consistent with PYTEST_PLUGINS.
* Removed the long-deprecated pytest_itemstart hook.
This hook has been marked as deprecated and not been even called by pytest for \
over 10 years now.
* 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.
* The cached_result attribute of FixtureDef is now set to None when the result \
is unavailable, instead of being deleted.
If your plugin performs checks like hasattr(fixturedef, 'cached_result'), for \
example in a pytest_fixture_post_finalizer hook implementation, replace it with \
fixturedef.cached_result is not None. If you del the attribute, set it to None \
instead.
Deprecations
* Option --no-print-logs is deprecated and meant to be removed in a future \
release. If you use --no-print-logs, please try out --show-capture and provide \
feedback.
--show-capture command-line option was added in pytest 3.5.0 and allows to \
specify how to display captured output when tests fail: no, stdout, stderr, log \
or all (the default).
* Deprecate the unused/broken pytest_collect_directory hook. It was misaligned \
since the removal of the Directory collector in 2010 and incorrect/unusable as \
soon as collection was split from test execution.
* Deprecate using direct constructors for Nodes.
Instead they are now constructed via Node.from_parent.
This transitional mechanism enables us to untangle the very intensely entangled \
Node relationships by enforcing more controlled creation/configuration patterns.
As part of this change, session/config are already disallowed parameters and as \
we work on the details we might need disallow a few more as well.
Subclasses are expected to use super().from_parent if they intend to expand the \
creation of Nodes.
* The TerminalReporter.writer attribute has been deprecated and should no longer \
be used. This was inadvertently exposed as part of the public API of that plugin \
and ties it too much with py.io.TerminalWriter.
Features
* New –capture=tee-sys option to allow both live printing and capturing of \
test output.
* Now all arguments to @pytest.mark.parametrize need to be explicitly declared \
in the function signature or via indirect. Previously it was possible to omit an \
argument if a fixture with the same name existed, which was just an accident of \
implementation and was not meant to be a part of the API.
* Changed default for -r to fE, which displays failures and errors in the short \
test summary. -rN can be used to disable it (the old behavior).
* New options have been added to the junit_logging option: log, out-err, and all.
* Excess warning summaries are now collapsed per file to ensure readable display \
of warning summaries.
Improvements
* pytest.mark.parametrize accepts integers for ids again, converting it to strings.
* Use “yellow” main color with any XPASSED tests.
* Revert “A warning is now issued when assertions are made for None”.
The warning proved to be less useful than initially expected and had quite a few \
false positive cases.
* tmpdir_factory.mktemp now fails when given absolute and non-normalized paths.
* The pytest_warning_captured hook now receives a location parameter with the \
code location that generated the warning.
* pytester: the testdir fixture respects environment settings from the \
monkeypatch fixture for inner runs.
* --fulltrace is honored with collection errors.
* Make --showlocals work also with --tb=short.
* Add support for matching lines consecutively with LineMatcher’s \
fnmatch_lines() and re_match_lines().
* Code is now highlighted in tracebacks when pygments is installed.
Users are encouraged to install pygments into their environment and provide \
feedback, because the plan is to make pygments a regular dependency in the \
future.
* Import usage error message with invalid -o option.
* pytest.mark.parametrize supports iterators and generators for ids.
Bug Fixes
* Add support for calling pytest.xfail() and pytest.importorskip() with doctests.
* --trace now works with unittests.
* Fixed some warning reports produced by pytest to point to the correct location \
of the warning in the user’s code.
* Fix --last-failed to collect new tests from files with known failures.
* Report PytestUnknownMarkWarning at the level of the user’s code, not pytest’s.
* Fix interaction with --pdb and unittests: do not use unittest’s TestCase.debug().
* Fix summary entries appearing twice when f/F and s/S report chars were used at \
the same time in the -r command-line option (for example -rFf).
The upper case variants were never documented and the preferred form should be \
the lower case.
* Fallback to green (instead of yellow) for non-last items without previous \
passes with colored terminal progress indicator.
* --disable-warnings is honored with -ra and -rA.
* Fix bug in the comparison of request key with cached key in fixture.
A construct if key == cached_key: can fail either because == is explicitly \
disallowed, or for, e.g., NumPy arrays, where the result of a == b cannot \
generally be converted to bool. The implemented fix replaces == with is.
* Make capture output streams .write() method return the same return value from \
original streams.
* Fix EncodedFile.writelines to call the underlying buffer’s writelines method.
* Fix internal crash when faulthandler starts initialized (for example with \
PYTHONFAULTHANDLER=1 environment variable set) and faulthandler_timeout defined \
in the configuration file.
* Fix node ids which contain a parametrized empty-string variable.
* Assertion rewriting hooks are (re)stored for the current item, which fixes \
them being still used after e.g. pytester’s testdir.runpytest etc.
* pytest.exit() is handled when emitted from the pytest_sessionfinish hook. This \
includes quitting from a debugger.
* When pytest.raises() is used as a function (as opposed to a context manager), \
a match keyword argument is now passed through to the tested function. \
Previously it was swallowed and ignored (regression in pytest 5.1.0).
* Do not display empty lines inbetween traceback for unexpected exceptions with \
doctests.
* The testdir fixture works within doctests now.
Improved Documentation
* Add list of fixtures to start of fixture chapter.
* Expand first sentence on fixtures into a paragraph.
Trivial/Internal Changes
* Remove usage of parser module, deprecated in Python 3.9.
Files: