[TIP] 2.3.1: regression and freebsd fixes

holger krekel holger at merlinux.eu
Sat Oct 20 05:37:35 PDT 2012


Did a quick 2.3.1 with some fixes:

- fix issue202 - regression with fixture functions/funcarg factories:  
  using "self" with class-level fixtures is now safe again and works as
  in 2.2.4.  Thanks to Eduard Schettino for the quick bug report.

- disable pexpect pytest self tests on Freebsd - thanks Koob for the 
  quick reporting

- fix/improve interactive docs with --markers

I am planning to do further quick regression-fixing minor 2.3.* releases
if neccessary - not going to announce each of them, though.

So make sure you have the newest version with e. g. "pip install -U pytest"
and keep the bug reports flowing :)

best,
holger



Changes between 2.3.0 and 2.3.1
-----------------------------------

- fix issue202 - fix regression: using "self" from fixture functions now
  works as expected (it's the same "self" instance that a test method
  which uses the fixture sees)

- skip pexpect using tests (test_pdb.py mostly) on freebsd* systems
  due to pexpect not supporting it properly (hanging)

- link to web pages from --markers output which provides help for
  pytest.mark.* usage.
On Fri, Oct 19, 2012 at 09:44 +0000, holger krekel wrote:
> pytest-2.3: improved fixtures / better unittest integration
> =============================================================================
> 
> pytest-2.3 comes with many major improvements for fixture/funcarg management
> and parametrized testing in Python.  It is now easier, more efficient and
> more predicatable to re-run the same tests with different fixture
> instances.  Also, you can directly declare the caching "scope" of
> fixtures so that dependent tests throughout your whole test suite can
> re-use database or other expensive fixture objects with ease.  Lastly,
> it's possible for fixture functions (formerly known as funcarg
> factories) to use other fixtures, allowing for a completely modular and
> re-useable fixture design.
> 
> For detailed info and tutorial-style examples, see:
> 
>     http://pytest.org/latest/fixture.html
> 
> Moreover, there is now support for using pytest fixtures/funcargs with
> unittest-style suites, see here for examples:
> 
>     http://pytest.org/latest/unittest.html
> 
> Besides, more unittest-test suites are now expected to "simply work"
> with pytest.
> 
> All changes are backward compatible and you should be able to continue
> to run your test suites and 3rd party plugins that worked with
> pytest-2.2.4.
> 
> If you are interested in the precise reasoning (including examples) of
> the pytest-2.3 fixture evolution, please consult
> http://pytest.org/latest/funcarg_compare.html
> 
> For general info on installation and getting started:
> 
>     http://pytest.org/latest/getting-started.html
> 
> Docs and PDF access as usual at:
> 
>     http://pytest.org
> 
> and more details for those already in the knowing of pytest can be found
> in the CHANGELOG below.
> 
> Particular thanks for this release go to Floris Bruynooghe, Alex Okrushko
> Carl Meyer, Ronny Pfannschmidt, Benjamin Peterson and Alex Gaynor for helping 
> to get the new features right and well integrated.  Ronny and Floris
> also helped to fix a number of bugs and yet more people helped by
> providing bug reports.
> 
> have fun,
> holger krekel
> 
> 
> Changes between 2.2.4 and 2.3.0
> -----------------------------------
> 
> - fix issue202 - better automatic names for parametrized test functions
> - fix issue139 - introduce @pytest.fixture which allows direct scoping
>   and parametrization of funcarg factories.  Introduce new @pytest.setup
>   marker to allow the writing of setup functions which accept funcargs.
> - fix issue198 - conftest fixtures were not found on windows32 in some
>   circumstances with nested directory structures due to path manipulation issues
> - fix issue193 skip test functions with were parametrized with empty
>   parameter sets
> - fix python3.3 compat, mostly reporting bits that previously depended
>   on dict ordering
> - introduce re-ordering of tests by resource and parametrization setup
>   which takes precedence to the usual file-ordering
> - fix issue185 monkeypatching time.time does not cause pytest to fail
> - fix issue172 duplicate call of pytest.setup-decoratored setup_module
>   functions
> - fix junitxml=path construction so that if tests change the
>   current working directory and the path is a relative path
>   it is constructed correctly from the original current working dir.
> - fix "python setup.py test" example to cause a proper "errno" return
> - fix issue165 - fix broken doc links and mention stackoverflow for FAQ
> - catch unicode-issues when writing failure representations
>   to terminal to prevent the whole session from crashing
> - fix xfail/skip confusion: a skip-mark or an imperative pytest.skip
>   will now take precedence before xfail-markers because we
>   can't determine xfail/xpass status in case of a skip. see also:
>   http://stackoverflow.com/questions/11105828/in-py-test-when-i-explicitly-skip-a-test-that-is-marked-as-xfail-how-can-i-get
> 
> - always report installed 3rd party plugins in the header of a test run
> 
> - fix issue160: a failing setup of an xfail-marked tests should
>   be reported as xfail (not xpass)
> 
> - fix issue128: show captured output when capsys/capfd are used
> 
> - fix issue179: propperly show the dependency chain of factories
> 
> - pluginmanager.register(...) now raises ValueError if the
>   plugin has been already registered or the name is taken
> 
> - fix issue159: improve http://pytest.org/latest/faq.html 
>   especially with respect to the "magic" history, also mention
>   pytest-django, trial and unittest integration.
> 
> - make request.keywords and node.keywords writable.  All descendant
>   collection nodes will see keyword values.  Keywords are dictionaries
>   containing markers and other info.
> 
> - fix issue 178: xml binary escapes are now wrapped in py.xml.raw
> 
> - fix issue 176: correctly catch the builtin AssertionError
>   even when we replaced AssertionError with a subclass on the
>   python level
> 
> - factory discovery no longer fails with magic global callables
>   that provide no sane __code__ object (mock.call for example)
> 
> - fix issue 182: testdir.inprocess_run now considers passed plugins
> 
> - fix issue 188: ensure sys.exc_info is clear on python2
>                  before calling into a test
> 
> - fix issue 191: add unittest TestCase runTest method support
> - fix issue 156: monkeypatch correctly handles class level descriptors
> 
> - reporting refinements:
> 
>   - pytest_report_header now receives a "startdir" so that
>     you can use startdir.bestrelpath(yourpath) to show
>     nice relative path
> 
>   - allow plugins to implement both pytest_report_header and 
>     pytest_sessionstart (sessionstart is invoked first).
> 
>   - don't show deselected reason line if there is none
> 
>   - py.test -vv will show all of assert comparisations instead of truncating
> 
> _______________________________________________
> py-dev mailing list
> py-dev at codespeak.net
> http://codespeak.net/mailman/listinfo/py-dev
> 



More information about the testing-in-python mailing list