1. Ronny Pfannschmidt
  2. pylib-hacks


pylib-hacks / CHANGELOG

Changes between 1.1.1 and 1.1.0

- introduce automatic plugin registration via 'pytest11' 
  entrypoints via setuptools' pkg_resources.iter_entry_points

- fix py.test dist-testing to work with execnet >= 1.0.0b4 

- re-introduce py.test.cmdline.main() for better backward compatibility 

- svn paths: fix a bug with path.check(versioned=True) for svn paths,
  allow '%' in svn paths, make svnwc.update() default to interactive mode 
  like in 1.0.x and add svnwc.update(interactive=False) to inhibit interaction.

- refine distributed tarball to contain test and no pyc files

- try harder to have deprecation warnings for py.compat.* accesses
  report a correct location

Changes between 1.1.0 and 1.0.2

* adjust and improve docs

* remove py.rest tool and internal namespace - it was
  never really advertised and can still be used with
  the old release if needed.  If there is interest 
  it could be revived into its own tool i guess.

* fix issue48 and issue59: raise an Error if the module
  from an imported test file does not seem to come from 
  the filepath - avoids "same-name" confusion that has
  been reported repeatedly

* merged Ronny's nose-compatibility hacks: now
  nose-style setup_module() and setup() functions are 

* introduce generalized py.test.mark function marking

* reshuffle / refine command line grouping

* deprecate parser.addgroup in favour of getgroup which creates option group

* add --report command line option that allows to control showing of skipped/xfailed sections 

* generalized skipping: a new way to mark python functions with skipif or xfail 
  at function, class and modules level based on platform or sys-module attributes. 

* extend py.test.mark decorator to allow for positional args

* introduce and test "py.cleanup -d" to remove empty directories 

* fix issue #59 - robustify unittest test collection

* make bpython/help interaction work by adding an __all__ attribute 
  to ApiModule, cleanup initpkg

* use MIT license for pylib, add some contributors

* remove py.execnet code and substitute all usages with 'execnet' proper

* fix issue50 - cached_setup now caches more to expectations 
  for test functions with multiple arguments. 

* merge Jarko's fixes, issue #45 and #46

* add the ability to specify a path for py.lookup to search in

* fix a funcarg cached_setup bug probably only occuring 
  in distributed testing and "module" scope with teardown. 

* many fixes and changes for making the code base python3 compatible,
  many thanks to Benjamin Peterson for helping with this. 

* consolidate builtins implementation to be compatible with >=2.3, 
  add helpers to ease keeping 2 and 3k compatible code

* deprecate py.compat.doctest|subprocess|textwrap|optparse

* deprecate py.magic.autopath, remove py/magic directory 

* move pytest assertion handling to py/code and a pytest_assertion
  plugin, add "--no-assert" option, deprecate py.magic namespaces 
  in favour of (less) py.code ones. 

* consolidate and cleanup py/code classes and files 

* cleanup py/misc, move tests to bin-for-dist 

* introduce delattr/delitem/delenv methods to py.test's monkeypatch funcarg 

* consolidate py.log implementation, remove old approach. 

* introduce py.io.TextIO and py.io.BytesIO for distinguishing between
  text/unicode and byte-streams (uses underlying standard lib io.* 
  if available) 

* make py.unittest_convert helper script available which converts "unittest.py" 
  style files into the simpler assert/direct-test-classes py.test/nosetests
  style.  The script was written by Laura Creighton. 
* simplified internal localpath implementation 

Changes between 1.0.1 and 1.0.2

* fixing packaging issues, triggered by fedora redhat packaging, 
  also added doc, examples and contrib dirs to the tarball. 

* added a documentation link to the new django plugin. 

Changes between 1.0.0 and 1.0.1

* added a 'pytest_nose' plugin which handles nose.SkipTest, 
  nose-style function/method/generator setup/teardown and 
  tries to report functions correctly. 

* capturing of unicode writes or encoded strings to sys.stdout/err 
  work better, also terminalwriting was adapted and somewhat 
  unified between windows and linux. 

* improved documentation layout and content a lot

* added a "--help-config" option to show conftest.py / ENV-var names for
  all longopt cmdline options, and some special conftest.py variables. 
  renamed 'conf_capture' conftest setting to 'option_capture' accordingly. 

* fix issue #27: better reporting on non-collectable items given on commandline 
  (e.g. pyc files)

* fix issue #33: added --version flag (thanks Benjamin Peterson) 

* fix issue #32: adding support for "incomplete" paths to wcpath.status()

* "Test" prefixed classes are *not* collected by default anymore if they 
  have an __init__ method 

* monkeypatch setenv() now accepts a "prepend" parameter

* improved reporting of collection error tracebacks

* simplified multicall mechanism and plugin architecture, 
  renamed some internal methods and argnames 

Changes between 1.0.0b9 and 1.0.0

* more terse reporting try to show filesystem path relatively to current dir 
* improve xfail output a bit

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 

* 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 

* 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
* 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
* 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
* 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
* 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
* 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,
* removed sorted() call for py.apigen tests in favour of [].sort() to support
  Python 2.3 [52481]