| pytest-2.6.0: shorter tracebacks, new warning system, test runner compat |
| =========================================================================== |
| |
| pytest is a mature Python testing tool with more than a 1000 tests |
| against itself, passing on many different interpreters and platforms. |
| |
| The 2.6.0 release should be drop-in backward compatible to 2.5.2 and |
| fixes a number of bugs and brings some new features, mainly: |
| |
| - shorter tracebacks by default: only the first (test function) entry |
| and the last (failure location) entry are shown, the ones between |
| only in "short" format. Use ``--tb=long`` to get back the old |
| behaviour of showing "long" entries everywhere. |
| |
| - a new warning system which reports oddities during collection |
| and execution. For example, ignoring collecting Test* classes with an |
| ``__init__`` now produces a warning. |
| |
| - various improvements to nose/mock/unittest integration |
| |
| Note also that 2.6.0 departs with the "zero reported bugs" policy |
| because it has been too hard to keep up with it, unfortunately. |
| Instead we are for now rather bound to work on "upvoted" issues in |
| the https://bitbucket.org/pytest-dev/pytest/issues?status=new&status=open&sort=-votes |
| issue tracker. |
| |
| See docs at: |
| |
| http://pytest.org |
| |
| As usual, you can upgrade from pypi via:: |
| |
| pip install -U pytest |
| |
| Thanks to all who contributed, among them: |
| |
| Benjamin Peterson |
| Jurko Gospodnetić |
| Floris Bruynooghe |
| Marc Abramowitz |
| Marc Schlaich |
| Trevor Bekolay |
| Bruno Oliveira |
| Alex Groenholm |
| |
| have fun, |
| holger krekel |
| |
| 2.6.0 |
| ----------------------------------- |
| |
| - fix issue537: Avoid importing old assertion reinterpretation code by default. |
| Thanks Benjamin Peterson. |
| |
| - fix issue364: shorten and enhance tracebacks representation by default. |
| The new "--tb=auto" option (default) will only display long tracebacks |
| for the first and last entry. You can get the old behaviour of printing |
| all entries as long entries with "--tb=long". Also short entries by |
| default are now printed very similarly to "--tb=native" ones. |
| |
| - fix issue514: teach assertion reinterpretation about private class attributes |
| Thanks Benjamin Peterson. |
| |
| - change -v output to include full node IDs of tests. Users can copy |
| a node ID from a test run, including line number, and use it as a |
| positional argument in order to run only a single test. |
| |
| - fix issue 475: fail early and comprehensible if calling |
| pytest.raises with wrong exception type. |
| |
| - fix issue516: tell in getting-started about current dependencies. |
| |
| - cleanup setup.py a bit and specify supported versions. Thanks Jurko |
| Gospodnetic for the PR. |
| |
| - change XPASS colour to yellow rather then red when tests are run |
| with -v. |
| |
| - fix issue473: work around mock putting an unbound method into a class |
| dict when double-patching. |
| |
| - fix issue498: if a fixture finalizer fails, make sure that |
| the fixture is still invalidated. |
| |
| - fix issue453: the result of the pytest_assertrepr_compare hook now gets |
| it's newlines escaped so that format_exception does not blow up. |
| |
| - internal new warning system: pytest will now produce warnings when |
| it detects oddities in your test collection or execution. |
| Warnings are ultimately sent to a new pytest_logwarning hook which is |
| currently only implemented by the terminal plugin which displays |
| warnings in the summary line and shows more details when -rw (report on |
| warnings) is specified. |
| |
| - change skips into warnings for test classes with an __init__ and |
| callables in test modules which look like a test but are not functions. |
| |
| - fix issue436: improved finding of initial conftest files from command |
| line arguments by using the result of parse_known_args rather than |
| the previous flaky heuristics. Thanks Marc Abramowitz for tests |
| and initial fixing approaches in this area. |
| |
| - fix issue #479: properly handle nose/unittest(2) SkipTest exceptions |
| during collection/loading of test modules. Thanks to Marc Schlaich |
| for the complete PR. |
| |
| - fix issue490: include pytest_load_initial_conftests in documentation |
| and improve docstring. |
| |
| - fix issue472: clarify that ``pytest.config.getvalue()`` cannot work |
| if it's triggered ahead of command line parsing. |
| |
| - merge PR123: improved integration with mock.patch decorator on tests. |
| |
| - fix issue412: messing with stdout/stderr FD-level streams is now |
| captured without crashes. |
| |
| - fix issue483: trial/py33 works now properly. Thanks Daniel Grana for PR. |
| |
| - improve example for pytest integration with "python setup.py test" |
| which now has a generic "-a" or "--pytest-args" option where you |
| can pass additional options as a quoted string. Thanks Trevor Bekolay. |
| |
| - simplified internal capturing mechanism and made it more robust |
| against tests or setups changing FD1/FD2, also better integrated |
| now with pytest.pdb() in single tests. |
| |
| - improvements to pytest's own test-suite leakage detection, courtesy of PRs |
| from Marc Abramowitz |
| |
| - fix issue492: avoid leak in test_writeorg. Thanks Marc Abramowitz. |
| |
| - fix issue493: don't run tests in doc directory with ``python setup.py test`` |
| (use tox -e doctesting for that) |
| |
| - fix issue486: better reporting and handling of early conftest loading failures |
| |
| - some cleanup and simplification of internal conftest handling. |
| |
| - work a bit harder to break reference cycles when catching exceptions. |
| Thanks Jurko Gospodnetic. |
| |
| - fix issue443: fix skip examples to use proper comparison. Thanks Alex |
| Groenholm. |
| |
| - support nose-style ``__test__`` attribute on modules, classes and |
| functions, including unittest-style Classes. If set to False, the |
| test will not be collected. |
| |
| - fix issue512: show "<notset>" for arguments which might not be set |
| in monkeypatch plugin. Improves output in documentation. |
| |
| - avoid importing "py.test" (an old alias module for "pytest") |