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
supported
- 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
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]