[py-dev] pylib/py.test 1.0.0b9 out

holger krekel holger at merlinux.eu
Fri Jul 31 15:49:49 CEST 2009


Hi all, 

i've just released a 1.0.0b9 to PyPI which should fix all
interactions with logging and has generally improved capturing
and reporting.  Below is the full changelog. 

If you like to help with some proof-reading, you are welcome to do
a mercurial checkout (see http://codespeak.net/py/dist/download.html) 
go to the 

    doc/  
    py/test/plugin/pytest_*.py 

directories and look through the text files and module docstrings
from which all of the plugin docs are generated at 
    
    http://codespeak.net/py/dist/test/plugin/index.html

thanks & cheers,

holger


Changes between 1.0.0b8 and 1.0.0b9
=====================================

* cleanly handle and report final teardown of test setup

* fix svn-1.6 compat issue with py.path.svnwc().versioned()
  (thanks Wouter Vanden Hove)

* setup/teardown or collection problems now show as ERRORs
  or with big "E"'s in the progress lines.  they are reported
  and counted separately. 
 
* dist-testing: properly handle test items that get locally 
  collected but cannot be collected on the remote side - often 
  due to platform/dependency reasons

* simplified py.test.mark API - see keyword plugin documentation

* integrate better with logging: capturing now by default captures
  test functions and their immediate setup/teardown in a single stream 

* capsys and capfd funcargs now have a readouterr() and a close() method
  (underlyingly py.io.StdCapture/FD objects are used which grew a 
  readouterr() method as well to return snapshots of captured out/err)

* make assert-reinterpretation work better with comparisons not 
  returning bools (reported with numpy from thanks maciej fijalkowski)

* reworked per-test output capturing into the pytest_iocapture.py plugin 
  and thus removed capturing code from config object 

* item.repr_failure(excinfo) instead of item.repr_failure(excinfo, outerr)


Changes between 1.0.0b7 and 1.0.0b8
=====================================

* pytest_unittest-plugin is now enabled by default

* introduced pytest_keyboardinterrupt hook and 
  refined pytest_sessionfinish hooked, added tests. 

* workaround a buggy logging module interaction ("closing already closed
  files").  Thanks to Sridhar Ratnakumar for triggering. 

* if plugins use "py.test.importorskip" for importing 
  a dependency only a warning will be issued instead 
  of exiting the testing process. 

* many improvements to docs: 
  - refined funcargs doc , use the term "factory" instead of "provider"
  - added a new talk/tutorial doc page 
  - better download page
  - better plugin docstrings
  - added new plugins page and automatic doc generation script

* fixed teardown problem related to partially failing funcarg setups 
  (thanks MrTopf for reporting), "pytest_runtest_teardown" is now 
  always invoked even if the "pytest_runtest_setup" failed. 

* tweaked doctest output for docstrings in py modules, 
  thanks Radomir. 

Changes between 1.0.0b3 and 1.0.0b7
=============================================

* renamed py.test.xfail back to py.test.mark.xfail to avoid 
  two ways to decorate for xfail

* re-added py.test.mark decorator for setting keywords on functions 
  (it was actually documented so removing it was not nice) 

* remove scope-argument from request.addfinalizer() because 
  request.cached_setup has the scope arg. TOOWTDI. 

* perform setup finalization before reporting failures

* apply modified patches from Andreas Kloeckner to allow 
  test functions to have no func_code (#22) and to make 
  "-k" and function keywords work  (#20) 

* apply patch from Daniel Peolzleithner (issue #23) 

* resolve issue #18, multiprocessing.Manager() and 
  redirection clash 

* make __name__ == "__channelexec__" for remote_exec code

Changes between 1.0.0b1 and 1.0.0b3
=============================================

* plugin classes are removed: one now defines 
  hooks directly in conftest.py or global pytest_*.py 
  files. 

* added new pytest_namespace(config) hook that allows 
  to inject helpers directly to the py.test.* namespace. 

* documented and refined many hooks 

* added new style of generative tests via 
  pytest_generate_tests hook that integrates 
  well with function arguments. 
 

Changes between 0.9.2 and 1.0.0b1
=============================================

* introduced new "funcarg" setup method, 
  see doc/test/funcarg.txt 

* introduced plugin architecuture and many 
  new py.test plugins, see 
  doc/test/plugins.txt

* teardown_method is now guaranteed to get 
  called after a test method has run. 
 
* new method: py.test.importorskip(mod,minversion)
  will either import or call py.test.skip()

* completely revised internal py.test architecture

* new py.process.ForkedFunc object allowing to 
  fork execution of a function to a sub process
  and getting a result back. 

XXX lots of things missing here XXX

Changes between 0.9.1 and 0.9.2
===============================

* refined installation and metadata, created new setup.py, 
  now based on setuptools/ez_setup (thanks to Ralf Schmitt 
  for his support).

* improved the way of making py.* scripts available in 
  windows environments, they are now added to the 
  Scripts directory as ".cmd" files. 

* py.path.svnwc.status() now is more complete and 
  uses xml output from the 'svn' command if available
  (Guido Wesdorp)

* fix for py.path.svn* to work with svn 1.5
  (Chris Lamb)

* fix path.relto(otherpath) method on windows to 
  use normcase for checking if a path is relative.

* py.test's traceback is better parseable from editors 
  (follows the filenames:LINENO: MSG convention)
  (thanks to Osmo Salomaa)

* fix to javascript-generation, "py.test --runbrowser" 
  should work more reliably now

* removed previously accidentally added 
  py.test.broken and py.test.notimplemented helpers. 

* there now is a py.__version__ attribute

Changes between 0.9.0 and 0.9.1
===============================

This is a fairly complete list of changes between 0.9 and 0.9.1, which can
serve as a reference for developers.

* allowing + signs in py.path.svn urls [39106]
* fixed support for Failed exceptions without excinfo in py.test [39340]
* added support for killing processes for Windows (as well as platforms that
  support os.kill) in py.misc.killproc [39655]
* added setup/teardown for generative tests to py.test [40702]
* added detection of FAILED TO LOAD MODULE to py.test [40703, 40738, 40739]
* fixed problem with calling .remove() on wcpaths of non-versioned files in
  py.path [44248]
* fixed some import and inheritance issues in py.test [41480, 44648, 44655]
* fail to run greenlet tests when pypy is available, but without stackless
  [45294]
* small fixes in rsession tests [45295]
* fixed issue with 2.5 type representations in py.test [45483, 45484]
* made that internal reporting issues displaying is done atomically in py.test
  [45518]
* made that non-existing files are igored by the py.lookup script [45519]
* improved exception name creation in py.test [45535]
* made that less threads are used in execnet [merge in 45539]
* removed lock required for atomical reporting issue displaying in py.test
  [45545]
* removed globals from execnet [45541, 45547]
* refactored cleanup mechanics, made that setDaemon is set to 1 to make atexit
  get called in 2.5 (py.execnet) [45548]
* fixed bug in joining threads in py.execnet's servemain [45549]
* refactored py.test.rsession tests to not rely on exact output format anymore
  [45646]
* using repr() on test outcome [45647]
* added 'Reason' classes for py.test.skip() [45648, 45649]
* killed some unnecessary sanity check in py.test.collect [45655]
* avoid using os.tmpfile() in py.io.fdcapture because on Windows it's only
  usable by Administrators [45901]
* added support for locking and non-recursive commits to py.path.svnwc [45994]
* locking files in py.execnet to prevent CPython from segfaulting [46010]
* added export() method to py.path.svnurl
* fixed -d -x in py.test [47277]
* fixed argument concatenation problem in py.path.svnwc [49423]
* restore py.test behaviour that it exits with code 1 when there are failures
  [49974]
* don't fail on html files that don't have an accompanying .txt file [50606]
* fixed 'utestconvert.py < input' [50645]
* small fix for code indentation in py.code.source [50755]
* fix _docgen.py documentation building [51285]
* improved checks for source representation of code blocks in py.test [51292]
* added support for passing authentication to py.path.svn* objects [52000,
  52001]
* removed sorted() call for py.apigen tests in favour of [].sort() to support
  Python 2.3 [52481]
-- 
Metaprogramming, Python, Testing: http://tetamap.wordpress.com
Python, PyPy, pytest contracting: http://merlinux.eu 



More information about the Pytest-dev mailing list