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.3.2
->==5.4.3
Release Notes
pytest-dev/pytest
v5.4.3
Compare Source
pytest 5.4.3 (2020-06-02)
Bug Fixes
changed since the start of the session.
ConfTestImportFailure
is raised.--pdb
would call thetearDown
methods ofunittest.TestCase
subclasses for skipped tests.
v5.4.2
Compare Source
pytest 5.4.2 (2020-05-08)
Bug Fixes
unittest.IsolatedAsyncioTestCase
is actually awaited.TestCase.addCleanup
were not being called on test failures.TerminalReporter.writer
attribute.asyncbase.TestCase
tests are executed correctly again.File.from_constructor
so it forwards extra keyword arguments to the constructor.__getattribute__
methods are displayed correctly during failures._is_setup_py
for files encoded differently than locale.v5.4.1
Compare Source
pytest 5.4.1 (2020-03-13)
Bug Fixes
#6909: 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.
#6910: Fix crash when plugins return an unknown stats while using the
--reportlog
option.v5.4.0
Compare Source
Breaking Changes
#6316: Matching of
-k EXPRESSION
to test names is now case-insensitive.#6443: 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 withPYTEST_PLUGINS
.#6637: 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.
#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_result
attribute ofFixtureDef
is now set toNone
whenthe 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, replaceit with
fixturedef.cached_result is not None
. If youdel
the attribute,set it to
None
instead.Deprecations
#3238: 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
andprovide feedback.
--show-capture
command-line option was added inpytest 3.5.0
and allows to specify how todisplay captured output when tests fail:
no
,stdout
,stderr
,log
orall
(the default).#571: Deprecate the unused/broken [pytest_collect_directory]{.title-ref} hook.
It was misaligned since the removal of the
Directory
collector 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
Node
relationships 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.writer
attribute 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.parametrize
need 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.parametrize
accepts integers forids
again, 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.mktemp
now fails when given absolute and non-normalized paths.#5984: The
pytest_warning_captured
hook now receives alocation
parameter with the code location that generated the warning.#6213: pytester: the
testdir
fixture respects environment settings from themonkeypatch
fixture for inner runs.#6247:
--fulltrace
is 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
pygments
is installed.Users are encouraged to install
pygments
into their environment and provide feedback, becausethe plan is to make
pygments
a regular dependency in the future.#6795: Import usage error message with invalid [-o]{.title-ref} option.
#759:
pytest.mark.parametrize
supports iterators and generators forids
.Bug Fixes
#310: Add support for calling [pytest.xfail()]{.title-ref} and [pytest.importorskip()]{.title-ref} with doctests.
#3823:
--trace
now 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-failed
to collect new tests from files with known failures.#5928: Report
PytestUnknownMarkWarning
at the level of the user's code, notpytest
's.#5991: Fix interaction with
--pdb
and unittests: do not use unittest'sTestCase.debug()
.#6334: Fix summary entries appearing twice when
f/F
ands/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.
#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 == b
cannot 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.writelines
to call the underlying buffer'swritelines
method.#6575: Fix internal crash when
faulthandler
starts initialized(for example with
PYTHONFAULTHANDLER=1
environment variable set) andfaulthandler_timeout
definedin 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
parser
module, deprecated in Python 3.9.v5.3.5
Compare 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.4
Compare 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.3
Compare Source
pytest 5.3.3 (2020-01-16)
Bug Fixes
output during teardown is shown with
-rP
.pytest-xdist
crash when dealing with exceptions raised insubprocesses created by the
multiprocessing
module.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
testdir
results (regression in 5.3.0).
Trivial/Internal Changes
Optimized automatic renaming of test parameter IDs.
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.