1pytest-2.6.0: shorter tracebacks, new warning system, test runner compat 2=========================================================================== 3 4pytest is a mature Python testing tool with more than a 1000 tests 5against itself, passing on many different interpreters and platforms. 6 7The 2.6.0 release should be drop-in backward compatible to 2.5.2 and 8fixes a number of bugs and brings some new features, mainly: 9 10- shorter tracebacks by default: only the first (test function) entry 11 and the last (failure location) entry are shown, the ones between 12 only in "short" format. Use ``--tb=long`` to get back the old 13 behaviour of showing "long" entries everywhere. 14 15- a new warning system which reports oddities during collection 16 and execution. For example, ignoring collecting Test* classes with an 17 ``__init__`` now produces a warning. 18 19- various improvements to nose/mock/unittest integration 20 21Note also that 2.6.0 departs with the "zero reported bugs" policy 22because it has been too hard to keep up with it, unfortunately. 23Instead we are for now rather bound to work on "upvoted" issues in 24the https://bitbucket.org/pytest-dev/pytest/issues?status=new&status=open&sort=-votes 25issue tracker. 26 27See docs at: 28 29 http://pytest.org 30 31As usual, you can upgrade from pypi via:: 32 33 pip install -U pytest 34 35Thanks to all who contributed, among them: 36 37 Benjamin Peterson 38 Jurko Gospodnetić 39 Floris Bruynooghe 40 Marc Abramowitz 41 Marc Schlaich 42 Trevor Bekolay 43 Bruno Oliveira 44 Alex Groenholm 45 46have fun, 47holger krekel 48 492.6.0 50----------------------------------- 51 52- fix issue537: Avoid importing old assertion reinterpretation code by default. 53 Thanks Benjamin Peterson. 54 55- fix issue364: shorten and enhance tracebacks representation by default. 56 The new "--tb=auto" option (default) will only display long tracebacks 57 for the first and last entry. You can get the old behaviour of printing 58 all entries as long entries with "--tb=long". Also short entries by 59 default are now printed very similarly to "--tb=native" ones. 60 61- fix issue514: teach assertion reinterpretation about private class attributes 62 Thanks Benjamin Peterson. 63 64- change -v output to include full node IDs of tests. Users can copy 65 a node ID from a test run, including line number, and use it as a 66 positional argument in order to run only a single test. 67 68- fix issue 475: fail early and comprehensible if calling 69 pytest.raises with wrong exception type. 70 71- fix issue516: tell in getting-started about current dependencies. 72 73- cleanup setup.py a bit and specify supported versions. Thanks Jurko 74 Gospodnetic for the PR. 75 76- change XPASS colour to yellow rather then red when tests are run 77 with -v. 78 79- fix issue473: work around mock putting an unbound method into a class 80 dict when double-patching. 81 82- fix issue498: if a fixture finalizer fails, make sure that 83 the fixture is still invalidated. 84 85- fix issue453: the result of the pytest_assertrepr_compare hook now gets 86 it's newlines escaped so that format_exception does not blow up. 87 88- internal new warning system: pytest will now produce warnings when 89 it detects oddities in your test collection or execution. 90 Warnings are ultimately sent to a new pytest_logwarning hook which is 91 currently only implemented by the terminal plugin which displays 92 warnings in the summary line and shows more details when -rw (report on 93 warnings) is specified. 94 95- change skips into warnings for test classes with an __init__ and 96 callables in test modules which look like a test but are not functions. 97 98- fix issue436: improved finding of initial conftest files from command 99 line arguments by using the result of parse_known_args rather than 100 the previous flaky heuristics. Thanks Marc Abramowitz for tests 101 and initial fixing approaches in this area. 102 103- fix issue #479: properly handle nose/unittest(2) SkipTest exceptions 104 during collection/loading of test modules. Thanks to Marc Schlaich 105 for the complete PR. 106 107- fix issue490: include pytest_load_initial_conftests in documentation 108 and improve docstring. 109 110- fix issue472: clarify that ``pytest.config.getvalue()`` cannot work 111 if it's triggered ahead of command line parsing. 112 113- merge PR123: improved integration with mock.patch decorator on tests. 114 115- fix issue412: messing with stdout/stderr FD-level streams is now 116 captured without crashes. 117 118- fix issue483: trial/py33 works now properly. Thanks Daniel Grana for PR. 119 120- improve example for pytest integration with "python setup.py test" 121 which now has a generic "-a" or "--pytest-args" option where you 122 can pass additional options as a quoted string. Thanks Trevor Bekolay. 123 124- simplified internal capturing mechanism and made it more robust 125 against tests or setups changing FD1/FD2, also better integrated 126 now with pytest.pdb() in single tests. 127 128- improvements to pytest's own test-suite leakage detection, courtesy of PRs 129 from Marc Abramowitz 130 131- fix issue492: avoid leak in test_writeorg. Thanks Marc Abramowitz. 132 133- fix issue493: don't run tests in doc directory with ``python setup.py test`` 134 (use tox -e doctesting for that) 135 136- fix issue486: better reporting and handling of early conftest loading failures 137 138- some cleanup and simplification of internal conftest handling. 139 140- work a bit harder to break reference cycles when catching exceptions. 141 Thanks Jurko Gospodnetic. 142 143- fix issue443: fix skip examples to use proper comparison. Thanks Alex 144 Groenholm. 145 146- support nose-style ``__test__`` attribute on modules, classes and 147 functions, including unittest-style Classes. If set to False, the 148 test will not be collected. 149 150- fix issue512: show "<notset>" for arguments which might not be set 151 in monkeypatch plugin. Improves output in documentation. 152 153- avoid importing "py.test" (an old alias module for "pytest") 154