175 lines
7.1 KiB
ReStructuredText
175 lines
7.1 KiB
ReStructuredText
pytest-2.5.0: now down to ZERO reported bugs!
|
|
===========================================================================
|
|
|
|
pytest-2.5.0 is a big fixing release, the result of two community bug
|
|
fixing days plus numerous additional works from many people and
|
|
reporters. The release should be fully compatible to 2.4.2, existing
|
|
plugins and test suites. We aim at maintaining this level of ZERO reported
|
|
bugs because it's no fun if your testing tool has bugs, is it? Under a
|
|
condition, though: when submitting a bug report please provide
|
|
clear information about the circumstances and a simple example which
|
|
reproduces the problem.
|
|
|
|
The issue tracker is of course not empty now. We have many remaining
|
|
"enhancement" issues which we'll hopefully can tackle in 2014 with your
|
|
help.
|
|
|
|
For those who use older Python versions, please note that pytest is not
|
|
automatically tested on python2.5 due to virtualenv, setuptools and tox
|
|
not supporting it anymore. Manual verification shows that it mostly
|
|
works fine but it's not going to be part of the automated release
|
|
process and thus likely to break in the future.
|
|
|
|
As usual, current docs are at
|
|
|
|
http://pytest.org
|
|
|
|
and you can upgrade from pypi via::
|
|
|
|
pip install -U pytest
|
|
|
|
Particular thanks for helping with this release go to Anatoly Bubenkoff,
|
|
Floris Bruynooghe, Marc Abramowitz, Ralph Schmitt, Ronny Pfannschmidt,
|
|
Donald Stufft, James Lan, Rob Dennis, Jason R. Coombs, Mathieu Agopian,
|
|
Virgil Dupras, Bruno Oliveira, Alex Gaynor and others.
|
|
|
|
have fun,
|
|
holger krekel
|
|
|
|
|
|
2.5.0
|
|
-----------------------------------
|
|
|
|
- dropped python2.5 from automated release testing of pytest itself
|
|
which means it's probably going to break soon (but still works
|
|
with this release we believe).
|
|
|
|
- simplified and fixed implementation for calling finalizers when
|
|
parametrized fixtures or function arguments are involved. finalization
|
|
is now performed lazily at setup time instead of in the "teardown phase".
|
|
While this might sound odd at first, it helps to ensure that we are
|
|
correctly handling setup/teardown even in complex code. User-level code
|
|
should not be affected unless it's implementing the pytest_runtest_teardown
|
|
hook and expecting certain fixture instances are torn down within (very
|
|
unlikely and would have been unreliable anyway).
|
|
|
|
- PR90: add --color=yes|no|auto option to force terminal coloring
|
|
mode ("auto" is default). Thanks Marc Abramowitz.
|
|
|
|
- fix issue319 - correctly show unicode in assertion errors. Many
|
|
thanks to Floris Bruynooghe for the complete PR. Also means
|
|
we depend on py>=1.4.19 now.
|
|
|
|
- fix issue396 - correctly sort and finalize class-scoped parametrized
|
|
tests independently from number of methods on the class.
|
|
|
|
- refix issue323 in a better way -- parametrization should now never
|
|
cause Runtime Recursion errors because the underlying algorithm
|
|
for re-ordering tests per-scope/per-fixture is not recursive
|
|
anymore (it was tail-call recursive before which could lead
|
|
to problems for more than >966 non-function scoped parameters).
|
|
|
|
- fix issue290 - there is preliminary support now for parametrizing
|
|
with repeated same values (sometimes useful to test if calling
|
|
a second time works as with the first time).
|
|
|
|
- close issue240 - document precisely how pytest module importing
|
|
works, discuss the two common test directory layouts, and how it
|
|
interacts with PEP420-namespace packages.
|
|
|
|
- fix issue246 fix finalizer order to be LIFO on independent fixtures
|
|
depending on a parametrized higher-than-function scoped fixture.
|
|
(was quite some effort so please bear with the complexity of this sentence :)
|
|
Thanks Ralph Schmitt for the precise failure example.
|
|
|
|
- fix issue244 by implementing special index for parameters to only use
|
|
indices for paramentrized test ids
|
|
|
|
- fix issue287 by running all finalizers but saving the exception
|
|
from the first failing finalizer and re-raising it so teardown will
|
|
still have failed. We reraise the first failing exception because
|
|
it might be the cause for other finalizers to fail.
|
|
|
|
- fix ordering when mock.patch or other standard decorator-wrappings
|
|
are used with test methods. This fixes issue346 and should
|
|
help with random "xdist" collection failures. Thanks to
|
|
Ronny Pfannschmidt and Donald Stufft for helping to isolate it.
|
|
|
|
- fix issue357 - special case "-k" expressions to allow for
|
|
filtering with simple strings that are not valid python expressions.
|
|
Examples: "-k 1.3" matches all tests parametrized with 1.3.
|
|
"-k None" filters all tests that have "None" in their name
|
|
and conversely "-k 'not None'".
|
|
Previously these examples would raise syntax errors.
|
|
|
|
- fix issue384 by removing the trial support code
|
|
since the unittest compat enhancements allow
|
|
trial to handle it on its own
|
|
|
|
- don't hide an ImportError when importing a plugin produces one.
|
|
fixes issue375.
|
|
|
|
- fix issue275 - allow usefixtures and autouse fixtures
|
|
for running doctest text files.
|
|
|
|
- fix issue380 by making --resultlog only rely on longrepr instead
|
|
of the "reprcrash" attribute which only exists sometimes.
|
|
|
|
- address issue122: allow @pytest.fixture(params=iterator) by exploding
|
|
into a list early on.
|
|
|
|
- fix pexpect-3.0 compatibility for pytest's own tests.
|
|
(fixes issue386)
|
|
|
|
- allow nested parametrize-value markers, thanks James Lan for the PR.
|
|
|
|
- fix unicode handling with new monkeypatch.setattr(import_path, value)
|
|
API. Thanks Rob Dennis. Fixes issue371.
|
|
|
|
- fix unicode handling with junitxml, fixes issue368.
|
|
|
|
- In assertion rewriting mode on Python 2, fix the detection of coding
|
|
cookies. See issue #330.
|
|
|
|
- make "--runxfail" turn imperative pytest.xfail calls into no ops
|
|
(it already did neutralize pytest.mark.xfail markers)
|
|
|
|
- refine pytest / pkg_resources interactions: The AssertionRewritingHook
|
|
PEP302 compliant loader now registers itself with setuptools/pkg_resources
|
|
properly so that the pkg_resources.resource_stream method works properly.
|
|
Fixes issue366. Thanks for the investigations and full PR to Jason R. Coombs.
|
|
|
|
- pytestconfig fixture is now session-scoped as it is the same object during the
|
|
whole test run. Fixes issue370.
|
|
|
|
- avoid one surprising case of marker malfunction/confusion::
|
|
|
|
@pytest.mark.some(lambda arg: ...)
|
|
def test_function():
|
|
|
|
would not work correctly because pytest assumes @pytest.mark.some
|
|
gets a function to be decorated already. We now at least detect if this
|
|
arg is a lambda and thus the example will work. Thanks Alex Gaynor
|
|
for bringing it up.
|
|
|
|
- xfail a test on pypy that checks wrong encoding/ascii (pypy does
|
|
not error out). fixes issue385.
|
|
|
|
- internally make varnames() deal with classes's __init__,
|
|
although it's not needed by pytest itself atm. Also
|
|
fix caching. Fixes issue376.
|
|
|
|
- fix issue221 - handle importing of namespace-package with no
|
|
__init__.py properly.
|
|
|
|
- refactor internal FixtureRequest handling to avoid monkeypatching.
|
|
One of the positive user-facing effects is that the "request" object
|
|
can now be used in closures.
|
|
|
|
- fixed version comparison in pytest.importskip(modname, minverstring)
|
|
|
|
- fix issue377 by clarifying in the nose-compat docs that pytest
|
|
does not duplicate the unittest-API into the "plain" namespace.
|
|
|
|
- fix verbose reporting for @mock'd test functions
|