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:
RevisionActionfile
1.2modifypkgsrc/devel/py-test/DESCR
1.89modifypkgsrc/devel/py-test/Makefile
1.17modifypkgsrc/devel/py-test/PLIST
1.79modifypkgsrc/devel/py-test/distinfo
1.1removepkgsrc/devel/py-test5/ALTERNATIVES
1.1removepkgsrc/devel/py-test5/DESCR
1.11removepkgsrc/devel/py-test5/Makefile
1.2removepkgsrc/devel/py-test5/PLIST
1.10removepkgsrc/devel/py-test5/distinfo