Path to this page:
Subject: CVS commit: pkgsrc/devel/py-test5
From: Adam Ciarcinski
Date: 2019-11-20 09:34:19
Message id: 20191120083419.AA238FA97@cvs.NetBSD.org
Log Message:
py-test5: updated to 5.3.0
pytest 5.3.0:
Deprecations
* The 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.
For more information, see the docs.
Features
* The pytest team has created the pytest-reportlog plugin, which provides a new \
--report-log=FILE option that writes report logs into a file as the test session \
executes.
Each line of the report log contains a self contained JSON object corresponding \
to a testing event, such as a collection or a test result report. The file is \
guaranteed to be flushed after writing each line, so systems can read and \
process events in real-time.
The plugin is meant to replace the --resultlog option, which is deprecated and \
meant to be removed in a future release. If you use --resultlog, please try out \
pytest-reportlog and provide feedback.
* When sys.pycache_prefix (Python 3.8+) is set, it will be used by pytest to \
cache test files changed by the assertion rewriting mechanism.
This makes it easier to benefit of cached .pyc files even on file systems \
without permissions.
* Allow selective auto-indentation of multiline log messages.
Adds command line option --log-auto-indent, config option log_auto_indent and \
support for per-entry configuration of indentation behavior on calls to \
logging.log().
Alters the default for auto-indention from on to off. This restores the older \
behavior that existed prior to v4.6.0. This reversion to earlier behavior was \
done because it is better to activate new features that may lead to broken tests \
explicitly rather than implicitly.
* pytester learned two new functions, no_fnmatch_line and no_re_match_line.
The functions are used to ensure the captured text does not match the given pattern.
The previous idiom was to use re.match:
assert re.match(pat, result.stdout.str()) is None
Or the in operator:
assert text in result.stdout.str()
But the new functions produce best output on failure.
* Added tolerances to complex values when printing pytest.approx.
For example, repr(pytest.approx(3+4j)) returns (3+4j) ± 5e-06 ∠ ±180°. This \
is polar notation indicating a circle around the expected value, with a radius \
of 5e-06. For approx comparisons to return True, the actual value should fall \
within this circle.
* Added the pluginmanager as an argument to pytest_addoption so that hooks can \
be invoked when setting up command line options. This is useful for having one \
plugin communicate things to another plugin, such as default values or which set \
of command line options to add.
Improvements
* Use multiple colors with terminal summary statistics.
* Quitting from debuggers is now properly handled in doctest items.
* Improved verbose diff output with sequences.
Before:
After:
* Display untruncated assertion message with -vv.
* Fixed plurality mismatch in test summary (e.g. display “1 error” instead \
of “1 errors”).
* Config.InvocationParams.args is now always a tuple to better convey that it \
should be immutable and avoid accidental modifications.
* pytest.main now returns a pytest.ExitCode instance now, except for when custom \
exit codes are used (where it returns int then still).
* Align prefixes in output of pytester’s LineMatcher.
* Collection errors are reported as errors (and not failures like before) in the \
terminal’s short test summary.
* pytester.spawn does not skip/xfail tests on FreeBSD anymore unconditionally.
* The “[XXX%]” indicator in the test summary is now colored according to the \
final (new) multi-colored line’s main color.
* Added --co as a synonym to --collect-only.
* atomicwrites is now only used on Windows, fixing a performance regression with \
assertion rewriting on Unix.
* Now parametrization will use the __name__ attribute of any object for the id, \
if present. Previously it would only use __name__ for functions and classes.
* Improved failure reporting with pytester’s Hookrecorder.assertoutcome.
* The reason for a stopped session, e.g. with --maxfail / -x, now gets reported \
in the test summary.
* Improved cache.set robustness and performance.
Bug Fixes
* Fixed --setup-plan showing inaccurate information about fixture lifetimes.
* Fixed line offset mismatch of skipped tests in terminal summary.
* The PytestDoctestRunner is now properly invalidated when unconfiguring the \
doctest plugin.
This is important when used with pytester’s runpytest_inprocess.
* BaseExceptions are now handled in saferepr, which includes \
pytest.fail.Exception etc.
* pytester: fixed order of arguments in rm_rf warning when cleaning up temporary \
directories, and do not emit warnings for errors with os.open.
* Fixed result of getmodpath method.
Trivial/Internal Changes
* RunResult from pytester now displays the mnemonic of the ret attribute when it \
is a valid pytest.ExitCode value.
Files: