pytest-2.9.0¶
pytest is a mature Python testing tool with more than 1100 tests against itself, passing on many different interpreters and platforms.
See below for the changes and see docs at:
As usual, you can upgrade from pypi via:
pip install -U pytest
Thanks to all who contributed to this release, among them:
Anatoly Bubenkov Bruno Oliveira Buck Golemon David Vierra Florian Bruhin Galaczi Endre Georgy Dyuldin Lukas Bednar Luke Murphy Marcin Biernat Matt Williams Michael Aquilina Raphael Pierzina Ronny Pfannschmidt Ryan Wooden Tiemo Kieft TomV holger krekel jab
Happy testing, The py.test Development Team
2.9.0 (compared to 2.8.7)¶
New Features
New
pytest.mark.skipmark, which unconditionally skips marked tests. Thanks @MichaelAquilina for the complete PR (#1040).--doctest-globmay now be passed multiple times in the command-line. Thanks @jab and @nicoddemus for the PR.New
-rpand-rPreporting options give the summary and full output of passing tests, respectively. Thanks to @codewarrior0 for the PR.pytest.mark.xfailnow has astrictoption which makesXPASStests to fail the test suite, defaulting toFalse. There’s also axfail_strictini option that can be used to configure it project-wise. Thanks @rabbbit for the request and @nicoddemus for the PR (#1355).Parser.addininow supports options of typebool. Thanks @nicoddemus for the PR.New
ALLOW_BYTESdoctest option stripsbprefixes from byte strings in doctest output (similar toALLOW_UNICODE). Thanks @jaraco for the request and @nicoddemus for the PR (#1287).give a hint on KeyboardInterrupt to use the –fulltrace option to show the errors, this fixes #1366. Thanks to @hpk42 for the report and @RonnyPfannschmidt for the PR.
catch IndexError exceptions when getting exception source location. This fixes pytest internal error for dynamically generated code (fixtures and tests) where source lines are fake by intention
Changes
Important: py.code has been merged into the
pytestrepository aspytest._code. This decision was made becausepy.codehad very few uses outsidepytestand the fact that it was in a different repository made it difficult to fix bugs on its code in a timely manner. The team hopes with this to be able to better refactor out and improve that code. This change shouldn’t affect users, but it is useful to let users aware if they encounter any strange behavior.Keep in mind that the code for
pytest._codeis private and experimental, so you definitely should not import it explicitly!Please note that the original
py.codeis still available in pylib.pytest_enter_pdbnow optionally receives the pytest config object. Thanks @nicoddemus for the PR.Removed code and documentation for Python 2.5 or lower versions, including removal of the obsolete
_pytest.assertion.oldinterpretmodule. Thanks @nicoddemus for the PR (#1226).Comparisons now always show up in full when
CIorBUILD_NUMBERis found in the environment, even when -vv isn’t used. Thanks @The-Compiler for the PR.--lfand--ffnow support long names:--last-failedand--failed-firstrespectively. Thanks @MichaelAquilina for the PR.Added expected exceptions to pytest.raises fail message
Collection only displays progress (“collecting X items”) when in a terminal. This avoids cluttering the output when using
--color=yesto obtain colors in CI integrations systems (#1397).
Bug Fixes
The
-sand-coptions should now work underxdist;Config.fromdictargsnow represents its input much more faithfully. Thanks to @bukzor for the complete PR (#680).Fix (#1290): support Python 3.5’s
@operator in assertion rewriting. Thanks @Shinkenjoe for report with test case and @tomviner for the PR.Fix formatting utf-8 explanation messages (#1379). Thanks @biern for the PR.
Fix traceback style docs to describe all of the available options (auto/long/short/line/native/no), with
autobeing the default since v2.6. Thanks @hackebrot for the PR.Fix (#1422): junit record_xml_property doesn’t allow multiple records with same name.