Update dependency pytest to v5.4.3 #29
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==5.2.2->==5.4.3Release Notes
pytest-dev/pytest (pytest)
v5.4.3Compare Source
pytest 5.4.3 (2020-06-02)
Bug Fixes
changed since the start of the session.
ConfTestImportFailureis raised.--pdbwould call thetearDownmethods ofunittest.TestCasesubclasses for skipped tests.
v5.4.2Compare Source
pytest 5.4.2 (2020-05-08)
Bug Fixes
unittest.IsolatedAsyncioTestCaseis actually awaited.TestCase.addCleanupwere not being called on test failures.TerminalReporter.writerattribute.asyncbase.TestCasetests are executed correctly again.File.from_constructorso it forwards extra keyword arguments to the constructor.__getattribute__methods are displayed correctly during failures._is_setup_pyfor files encoded differently than locale.v5.4.1Compare Source
pytest 5.4.1 (2020-03-13)
Bug Fixes
#6909: Revert the change introduced by #6330, which required all arguments to
@pytest.mark.parametrizeto 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.
#6910: Fix crash when plugins return an unknown stats while using the
--reportlogoption.v5.4.0: pytest 5.4.0 (2020-03-12)Compare Source
Breaking Changes
#6316: Matching of
-k EXPRESSIONto test names is now case-insensitive.#6443: Plugins specified with
-pare now loaded after internal plugins, which results in their hooks being called before the internal ones.This makes the
-pbehavior consistent withPYTEST_PLUGINS.#6637: Removed the long-deprecated
pytest_itemstarthook.This hook has been marked as deprecated and not been even called by pytest for over 10 years now.
#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.
#6737: The
cached_resultattribute ofFixtureDefis now set toNonewhenthe result is unavailable, instead of being deleted.
If your plugin performs checks like
hasattr(fixturedef, 'cached_result'),for example in a
pytest_fixture_post_finalizerhook implementation, replaceit with
fixturedef.cached_result is not None. If youdelthe attribute,set it to
Noneinstead.Deprecations
#3238: Option
--no-print-logsis deprecated and meant to be removed in a future release. If you use--no-print-logs, please try out--show-captureandprovide feedback.
--show-capturecommand-line option was added inpytest 3.5.0and allows to specify how todisplay captured output when tests fail:
no,stdout,stderr,logorall(the default).#571: Deprecate the unused/broken [pytest_collect_directory]{.title-ref} hook.
It was misaligned since the removal of the
Directorycollector in 2010and incorrect/unusable as soon as collection was split from test execution.
#5975: Deprecate using direct constructors for
Nodes.Instead they are new constructed via
Node.from_parent.This transitional mechanism enables us to detangle the very intensely
entangled
Noderelationships by enforcing more controlled creation/configruation patterns.As part of that 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]{.title-ref} if they intend to expand the creation of [Nodes]{.title-ref}.
#6779: The
TerminalReporter.writerattribute has been deprecated and should no longer be used. Thiswas inadvertently exposed as part of the public API of that plugin and ties it too much
with
py.io.TerminalWriter.Features
--capture=tee-sys <capture-method>{.interpreted-text role="ref"} option to allow both live printing and capturing of test output.@pytest.mark.parametrizeneed to be explicitly declared in the function signature or viaindirect.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.
short test summary <pytest.detailed_failed_tests_usage>{.interpreted-text role="ref"}. [-rN]{.title-ref} can be used to disable it (the old behavior).junit_logging{.interpreted-text role="confval"} option:log,out-err, andall.Improvements
#1857:
pytest.mark.parametrizeaccepts integers foridsagain, converting it to strings.#449: Use "yellow" main color with any XPASSED tests.
#4639: 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.
#5686:
tmpdir_factory.mktempnow fails when given absolute and non-normalized paths.#5984: The
pytest_warning_capturedhook now receives alocationparameter with the code location that generated the warning.#6213: pytester: the
testdirfixture respects environment settings from themonkeypatchfixture for inner runs.#6247:
--fulltraceis honored with collection errors.#6384: Make [--showlocals]{.title-ref} work also with [--tb=short]{.title-ref}.
#6653: Add support for matching lines consecutively with
LineMatcher <_pytest.pytester.LineMatcher>{.interpreted-text role="attr"}'s~_pytest.pytester.LineMatcher.fnmatch_lines{.interpreted-text role="func"} and~_pytest.pytester.LineMatcher.re_match_lines{.interpreted-text role="func"}.#6658: Code is now highlighted in tracebacks when
pygmentsis installed.Users are encouraged to install
pygmentsinto their environment and provide feedback, becausethe plan is to make
pygmentsa regular dependency in the future.#6795: Import usage error message with invalid [-o]{.title-ref} option.
#759:
pytest.mark.parametrizesupports iterators and generators forids.Bug Fixes
#310: Add support for calling [pytest.xfail()]{.title-ref} and [pytest.importorskip()]{.title-ref} with doctests.
#3823:
--tracenow works with unittests.#4445: Fixed some warning reports produced by pytest to point to the correct location of the warning in the user's code.
#5301: Fix
--last-failedto collect new tests from files with known failures.#5928: Report
PytestUnknownMarkWarningat the level of the user's code, notpytest's.#5991: Fix interaction with
--pdband unittests: do not use unittest'sTestCase.debug().#6334: Fix summary entries appearing twice when
f/Fands/Sreport chars were used at the same time in the-rcommand-line option (for example-rFf).The upper case variants were never documented and the preferred form should be the lower case.
#6409: Fallback to green (instead of yellow) for non-last items without previous passes with colored terminal progress indicator.
#6454: [--disable-warnings]{.title-ref} is honored with [-ra]{.title-ref} and [-rA]{.title-ref}.
#6497: 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 ofa == bcannot generally be converted to [bool]{.title-ref}.The implemented fix replaces [==]{.title-ref} with
is.#6557: Make capture output streams
.write()method return the same return value from original streams.#6566: Fix
EncodedFile.writelinesto call the underlying buffer'swritelinesmethod.#6575: Fix internal crash when
faulthandlerstarts initialized(for example with
PYTHONFAULTHANDLER=1environment variable set) andfaulthandler_timeoutdefinedin the configuration file.
#6597: Fix node ids which contain a parametrized empty-string variable.
#6646: Assertion rewriting hooks are (re)stored for the current item, which fixes them being still used after e.g. pytester's
testdir.runpytest <_pytest.pytester.Testdir.runpytest>{.interpreted-text role="func"} etc.#6660:
pytest.exit() <_pytest.outcomes.exit>{.interpreted-text role="func"} is handled when emitted from thepytest_sessionfinish <_pytest.hookspec.pytest_sessionfinish>{.interpreted-text role="func"} hook. This includes quitting from a debugger.#6752: When :py
pytest.raises{.interpreted-text role="func"} is used as a function (as opposed to a context manager),a [match]{.title-ref} keyword argument is now passed through to the tested function. Previously
it was swallowed and ignored (regression in pytest 5.1.0).
#6801: Do not display empty lines inbetween traceback for unexpected exceptions with doctests.
#6802: The
testdir fixture <testdir>{.interpreted-text role="fixture"} works within doctests now.Improved Documentation
Trivial/Internal Changes
parsermodule, deprecated in Python 3.9.v5.3.5Compare Source
pytest 5.3.5 (2020-01-29)
Bug Fixes
regression in pytest 5.3.4 causing an INTERNALERROR due to a wrong
assertion.
v5.3.4Compare Source
pytest 5.3.4 (2020-01-20)
Bug Fixes
#6436:
unfortunately this change has caused a number of regressions in many
suites, so the team decided to revert this change and make a new
release while we continue to look for a solution.
v5.3.3Compare Source
pytest 5.3.3 (2020-01-16)
Bug Fixes
output during teardown is shown with
-rP.pytest-xdistcrash when dealing with exceptions raised insubprocesses created by the
multiprocessingmodule.FixtureDef <_pytest.fixtures.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.
parsing of outcomes containing multiple errors with
testdirresults (regression in 5.3.0).
Trivial/Internal Changes
Optimized automatic renaming of test parameter IDs.
v5.3.2Compare Source
pytest 5.3.2 (2019-12-13)
Improvements
#4639: 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.
Bug Fixes
junitxml: Logs for failed test are now passed to junit report in
case the test fails during call phase.
supporting files in the
.pytest_cachedirectory are kept with--cache-clear, which only clears cached values now.assertion rewriting for egg-based distributions and
editableinstalls (
pip install --editable).v5.3.1Compare Source
pytest 5.3.1 (2019-11-25)
Improvements
pytest.mark.parametrize.Bug Fixes
no_fnmatch_linewhen used after positive matching.propertydocstrings, as a workaround to bpo-17446.sys.last_traceback,sys.last_typeandsys.last_valueattributes by deleting them instead of setting them toNone. This better matches the behaviour of the Python standard library.v5.3.0Compare Source
pytest 5.3.0 (2019-11-19)
Deprecations
#6179: The
default value of
junit_familyoption will change toxunit2inpytest 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
--junitxmloption is given in the command line butjunit_familyis not explicitly configured inpytest.ini.For more information, see the
docs.
Features
#4488: The
pytest team has created the
pytest-reportlog
plugin, which provides a new
--report-log=FILEoption that writesreport 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
--resultlogoption, which isdeprecated and meant to be removed in a future release. If you use
--resultlog, please try outpytest-reportlogandprovide feedback.
#4730: When
sys.pycache_prefix(Python 3.8+) is set, it will be used by pytestto cache test files changed by the assertion rewriting mechanism.
This makes it easier to benefit of cached
.pycfiles even on filesystems without permissions.
#5515: Allow
selective auto-indentation of multiline log messages.
Adds command line option
--log-auto-indent, config optionlog_auto_indentand support for per-entry configuration ofindentation behavior on calls to
logging.log().Alters the default for auto-indention from
ontooff. Thisrestores 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.
#5914:
pytesterlearned 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:Or the
inoperator:But the new functions produce best output on failure.
#6057: 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 circlearound the expected value, with a radius of 5e-06. For
approxcomparisons to return
True, the actual value should fall withinthis circle.
#6061: Added
the pluginmanager as an argument to
pytest_addoptionso that hookscan 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
#5061: Use
multiple colors with terminal summary statistics.
#5630: Quitting
from debuggers is now properly handled in
doctestitems.#5924: Improved
verbose diff output with sequences.
Before:
After:
#5936: Display
untruncated assertion message with
-vv.#5990: Fixed
plurality mismatch in test summary (e.g. display "1 error" instead
of "1 errors").
#6008:
Config.InvocationParams.argsis now always atupleto betterconvey that it should be immutable and avoid
accidental modifications.
#6023:
pytest.mainnow returns apytest.ExitCodeinstance now, exceptfor when custom exit codes are used (where it returns
intthen still).
#6026: Align
prefixes in output of pytester's
LineMatcher.#6059:
Collection errors are reported as errors (and not failures
like before) in the terminal's short test summary.
#6069:
pytester.spawndoes not skip/xfail tests on FreeBSDanymore unconditionally.
#6097: The
"[XXX%]" indicator in the test summary is now colored according to
the final (new) multi-colored line's main color.
#6116: Added
--coas a synonym to--collect-only.#6148:
atomicwritesis now only used on Windows, fixing a performanceregression with assertion rewriting on Unix.
#6152: Now
parametrization will use the
__name__attribute of any object forthe id, if present. Previously it would only use
__name__forfunctions and classes.
#6176: Improved
failure reporting with pytester's
Hookrecorder.assertoutcome.#6181: The
reason for a stopped session, e.g. with
--maxfail/-x, now getsreported in the test summary.
#6206: Improved
cache.setrobustness and performance.Bug Fixes
#2049: Fixed
--setup-planshowing inaccurate information aboutfixture lifetimes.
#2548: Fixed
line offset mismatch of skipped tests in terminal summary.
#6039: The
PytestDoctestRunneris now properly invalidated when unconfiguringthe doctest plugin.
This is important when used with
pytester'srunpytest_inprocess.#6047:
BaseExceptions are now handled in
saferepr, which includespytest.fail.Exceptionetc.#6074:
pytester: fixed order of arguments in
rm_rfwarning when cleaningup temporary directories, and do not emit warnings for errors with
os.open.#6189: Fixed
result of
getmodpathmethod.Trivial/Internal Changes
RunResultfrompytesternow displays the mnemonic of theretattribute when it is a valid
pytest.ExitCodevalue.v5.2.4Compare Source
pytest 5.2.4 (2019-11-15)
Bug Fixes
incorrect discovery of non-test
__init__.pyfiles."The first test in a package (
__init__.py) marked with@pytest.mark.skipis now correctly skipped.".v5.2.3Compare Source
pytest 5.2.3 (2019-11-14)
Bug Fixes
first test in a package (
__init__.py) marked with@pytest.mark.skipis now correctly skipped.--tracewhen used with parametrized functions.requestas a parameter name in@pytest.mark.parametrizenowproduces a more user-friendly error.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.