| 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 |
| "enhacement" 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 fixues 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 |