2010-09-14 21:43:00 +08:00
Changes between 1.3.3 and 1.3.4
2010-09-04 15:21:35 +08:00
==================================================
2010-09-14 21:43:00 +08:00
- fix issue111: improve install documentation for windows
2010-09-14 22:36:34 +08:00
- fix issue119: fix custom collectability of __init__.py as a module
- fix issue116: --doctestmodules work with __init__.py files as well
- fix issue115: unify internal exception passthrough/catching/GeneratorExit
- fix issue118: new --tb=native for presenting cpython-standard exceptions
2010-09-04 15:21:35 +08:00
2010-07-30 21:06:50 +08:00
Changes between 1.3.2 and 1.3.3
2010-07-26 19:13:10 +08:00
==================================================
2010-07-30 21:05:24 +08:00
- fix issue113: assertion representation problem with triple-quoted strings
2010-07-29 18:55:39 +08:00
(and possibly other cases)
2010-07-30 21:05:24 +08:00
- make conftest loading detect that a conftest file with the same
2010-07-29 17:22:16 +08:00
content was already loaded, avoids surprises in nested directory structures
2010-07-30 21:06:50 +08:00
which can be produced e.g. by Hudson. It probably removes the need to use
--confcutdir in most cases.
2010-07-28 23:33:26 +08:00
- fix terminal coloring for win32
(thanks Michael Foord for reporting)
2010-07-30 21:05:24 +08:00
- fix weirdness: make terminal width detection work on stdout instead of stdin
(thanks Armin Ronacher for reporting)
2010-07-30 21:06:50 +08:00
- remove trailing whitespace in all py/text distribution files
2010-07-27 03:15:15 +08:00
2010-07-08 21:28:54 +08:00
Changes between 1.3.1 and 1.3.2
2010-05-27 00:55:50 +08:00
==================================================
2010-07-30 21:05:24 +08:00
New features
2010-05-27 00:55:50 +08:00
++++++++++++++++++
2010-06-09 20:45:41 +08:00
- fix issue103: introduce py.test.raises as context manager, examples::
2010-06-09 20:26:08 +08:00
2010-07-30 21:05:24 +08:00
with py.test.raises(ZeroDivisionError):
2010-06-09 20:26:08 +08:00
x = 0
1 / x
2010-06-09 20:45:41 +08:00
with py.test.raises(RuntimeError) as excinfo:
call_something()
2010-06-28 17:26:19 +08:00
# you may do extra checks on excinfo.value|type|traceback here
2010-06-09 20:45:41 +08:00
2010-07-30 21:05:24 +08:00
(thanks Ronny Pfannschmidt)
2010-06-09 20:26:08 +08:00
2010-07-30 21:05:24 +08:00
- Funcarg factories can now dynamically apply a marker to a
test invocation. This is for example useful if a factory
2010-07-08 21:28:54 +08:00
provides parameters to a test which are expected-to-fail::
2010-06-08 08:34:51 +08:00
def pytest_funcarg__arg(request):
request.applymarker(py.test.mark.xfail(reason="flaky config"))
...
def test_function(arg):
...
2010-07-30 21:05:24 +08:00
- improved error reporting on collection and import errors. This makes
2010-07-08 21:28:54 +08:00
use of a more general mechanism, namely that for custom test item/collect
2010-07-30 21:05:24 +08:00
nodes ``node.repr_failure(excinfo)`` is now uniformly called so that you can
override it to return a string error representation of your choice
which is going to be reported as a (red) string.
2010-07-07 20:43:31 +08:00
2010-07-30 21:05:24 +08:00
- introduce '--junitprefix=STR' option to prepend a prefix
to all reports in the junitxml file.
2010-07-04 23:06:50 +08:00
2010-06-03 21:51:59 +08:00
Bug fixes / Maintenance
++++++++++++++++++++++++++
2010-05-27 00:55:50 +08:00
2010-07-30 21:05:24 +08:00
- make tests and the ``pytest_recwarn`` plugin in particular fully compatible
to Python2.7 (if you use the ``recwarn`` funcarg warnings will be enabled so that
you can properly check for their existence in a cross-python manner).
- refine --pdb: ignore xfailed tests, unify its TB-reporting and
2010-06-17 18:53:29 +08:00
don't display failures again at the end.
2010-07-03 20:44:47 +08:00
- fix assertion interpretation with the ** operator (thanks Benjamin Peterson)
- fix issue105 assignment on the same line as a failing assertion (thanks Benjamin Peterson)
- fix issue104 proper escaping for test names in junitxml plugin (thanks anonymous)
- fix issue57 -f|--looponfail to work with xpassing tests (thanks Ronny)
- fix issue92 collectonly reporter and --pastebin (thanks Benjamin Peterson)
2010-07-30 21:05:24 +08:00
- fix py.code.compile(source) to generate unique filenames
- fix assertion re-interp problems on PyPy, by defering code
2010-07-03 20:44:47 +08:00
compilation to the (overridable) Frame.eval class. (thanks Amaury Forgeot)
- fix py.path.local.pyimport() to work with directories
2010-06-03 21:51:59 +08:00
- streamline py.path.local.mkdtemp implementation and usage
2010-06-05 21:59:11 +08:00
- don't print empty lines when showing junitxml-filename
2010-06-08 02:48:36 +08:00
- add optional boolean ignore_errors parameter to py.path.local.remove
2010-07-30 21:05:24 +08:00
- fix terminal writing on win32/python2.4
- py.process.cmdexec() now tries harder to return properly encoded unicode objects
2010-06-25 16:30:15 +08:00
on all python versions
2010-06-28 17:59:12 +08:00
- install plain py.test/py.which scripts also for Jython, this helps to
get canonical script paths in virtualenv situations
2010-07-30 21:05:24 +08:00
- make path.bestrelpath(path) return ".", note that when calling
X.bestrelpath the assumption is that X is a directory.
- make initial conftest discovery ignore "--" prefixed arguments
- fix resultlog plugin when used in an multicpu/multihost xdist situation
(thanks Jakub Gustak)
- perform distributed testing related reporting in the xdist-plugin
rather than having dist-related code in the generic py.test
2010-07-07 18:41:15 +08:00
distribution
2010-07-30 21:05:24 +08:00
- fix homedir detection on Windows
2010-07-08 19:40:19 +08:00
- ship distribute_setup.py version 0.6.13
2010-05-27 00:55:50 +08:00
2010-05-11 23:43:56 +08:00
Changes between 1.3.0 and 1.3.1
==================================================
2010-07-30 21:05:24 +08:00
New features
2010-05-22 20:13:01 +08:00
++++++++++++++++++
2010-05-18 01:00:39 +08:00
2010-07-30 21:05:24 +08:00
- issue91: introduce new py.test.xfail(reason) helper
to imperatively mark a test as expected to fail. Can
2010-05-20 19:29:51 +08:00
be used from within setup and test functions. This is
2010-07-30 21:05:24 +08:00
useful especially for parametrized tests when certain
2010-05-20 19:29:51 +08:00
configurations are expected-to-fail. In this case the
declarative approach with the @py.test.mark.xfail cannot
2010-07-30 21:05:24 +08:00
be used as it would mark all configurations as xfail.
2010-05-20 19:29:51 +08:00
2010-05-25 22:52:09 +08:00
- issue102: introduce new --maxfail=NUM option to stop
test runs after NUM failures. This is a generalization
of the '-x' or '--exitfirst' option which is now equivalent
2010-07-30 21:05:24 +08:00
to '--maxfail=1'. Both '-x' and '--maxfail' will
now also print a line near the end indicating the Interruption.
2010-05-25 22:52:09 +08:00
2010-05-22 20:13:01 +08:00
- issue89: allow py.test.mark decorators to be used on classes
2010-07-30 21:05:24 +08:00
(class decorators were introduced with python2.6) and
2010-05-22 20:13:01 +08:00
also allow to have multiple markers applied at class/module level
2010-07-30 21:05:24 +08:00
by specifying a list.
2010-05-21 22:42:46 +08:00
2010-05-20 20:35:13 +08:00
- improve and refine letter reporting in the progress bar:
. pass
f failed test
s skipped tests (reminder: use for dependency/platform mismatch only)
x xfailed test (test that was expected to fail)
X xpassed test (test that was expected to fail but passed)
You can use any combination of 'fsxX' with the '-r' extended
2010-07-30 21:05:24 +08:00
reporting option. The xfail/xpass results will show up as
skipped tests in the junitxml output - which also fixes
2010-05-21 22:51:15 +08:00
issue99.
2010-05-20 20:35:13 +08:00
2010-07-30 21:05:24 +08:00
- make py.test.cmdline.main() return the exitstatus instead of raising
2010-05-22 20:13:01 +08:00
SystemExit and also allow it to be called multiple times. This of
2010-07-30 21:05:24 +08:00
course requires that your application and tests are properly teared
down and don't have global state.
2010-05-22 20:13:01 +08:00
2010-07-30 21:05:24 +08:00
Fixes / Maintenance
2010-05-22 20:13:01 +08:00
++++++++++++++++++++++
2010-05-12 01:56:22 +08:00
2010-07-30 21:05:24 +08:00
- improved traceback presentation:
2010-05-22 22:18:24 +08:00
- improved and unified reporting for "--tb=short" option
- Errors during test module imports are much shorter, (using --tb=short style)
2010-05-11 23:43:56 +08:00
- raises shows shorter more relevant tracebacks
2010-05-25 22:52:09 +08:00
- --fulltrace now more systematically makes traces longer / inhibits cutting
2010-05-11 23:43:56 +08:00
2010-05-12 04:54:04 +08:00
- improve support for raises and other dynamically compiled code by
manipulating python's linecache.cache instead of the previous
2010-07-30 21:05:24 +08:00
rather hacky way of creating custom code objects. This makes
2010-05-22 20:13:01 +08:00
it seemlessly work on Jython and PyPy where it previously didn't.
2010-07-30 21:05:24 +08:00
- fix issue96: make capturing more resilient against Control-C
2010-05-22 20:13:01 +08:00
interruptions (involved somewhat substantial refactoring
2010-07-30 21:05:24 +08:00
to the underlying capturing functionality to avoid race
2010-05-22 20:13:01 +08:00
conditions).
2010-07-30 21:05:24 +08:00
- fix chaining of conditional skipif/xfail decorators - so it works now
2010-05-22 20:13:01 +08:00
as expected to use multiple @py.test.mark.skipif(condition) decorators,
2010-07-30 21:05:24 +08:00
including specific reporting which of the conditions lead to skipping.
2010-05-22 20:13:01 +08:00
2010-07-30 21:05:24 +08:00
- fix issue95: late-import zlib so that it's not required
for general py.test startup.
2010-05-22 20:13:01 +08:00
- fix issue94: make reporting more robust against bogus source code
(and internally be more careful when presenting unexpected byte sequences)
2010-05-12 04:54:04 +08:00
2010-05-06 01:50:59 +08:00
Changes between 1.2.1 and 1.3.0
2010-04-22 17:57:57 +08:00
==================================================
2010-04-12 22:08:12 +08:00
2010-05-06 01:50:59 +08:00
- deprecate --report option in favour of a new shorter and easier to
remember -r option: it takes a string argument consisting of any
combination of 'xfsX' characters. They relate to the single chars
2010-07-30 21:05:24 +08:00
you see during the dotted progress printing and will print an extra line
2010-05-06 01:50:59 +08:00
per test at the end of the test run. This extra line indicates the exact
position or test ID that you directly paste to the py.test cmdline in order
2010-07-30 21:05:24 +08:00
to re-run a particular test.
2010-05-06 01:50:59 +08:00
2010-07-30 21:05:24 +08:00
- allow external plugins to register new hooks via the new
2010-05-02 22:36:53 +08:00
pytest_addhooks(pluginmanager) hook. The new release of
2010-07-30 21:05:24 +08:00
the pytest-xdist plugin for distributed and looponfailing
testing requires this feature.
2010-05-06 01:50:59 +08:00
2010-05-02 21:24:02 +08:00
- add a new pytest_ignore_collect(path, config) hook to allow projects and
2010-07-30 21:05:24 +08:00
plugins to define exclusion behaviour for their directory structure -
2010-05-06 01:50:59 +08:00
for example you may define in a conftest.py this method::
2010-05-02 21:24:02 +08:00
def pytest_ignore_collect(path):
2010-04-29 22:20:55 +08:00
return path.check(link=1)
2010-05-06 01:50:59 +08:00
2010-07-30 21:05:24 +08:00
to prevent even a collection try of any tests in symlinked dirs.
2010-05-06 01:50:59 +08:00
2010-04-30 15:53:26 +08:00
- new pytest_pycollect_makemodule(path, parent) hook for
2010-07-30 21:05:24 +08:00
allowing customization of the Module collection object for a
matching test module.
2010-05-06 01:50:59 +08:00
2010-07-30 21:05:24 +08:00
- extend and refine xfail mechanism:
2010-05-04 19:02:27 +08:00
``@py.test.mark.xfail(run=False)`` do not run the decorated test
``@py.test.mark.xfail(reason="...")`` prints the reason string in xfail summaries
specifiying ``--runxfail`` on command line virtually ignores xfail markers
2010-05-06 01:50:59 +08:00
2010-07-30 21:05:24 +08:00
- expose (previously internal) commonly useful methods:
2010-04-29 20:17:07 +08:00
py.io.get_terminal_with() -> return terminal width
py.io.ansi_print(...) -> print colored/bold text on linux/win32
py.io.saferepr(obj) -> return limited representation string
2010-05-06 01:50:59 +08:00
2010-07-30 21:05:24 +08:00
- expose test outcome related exceptions as py.test.skip.Exception,
2010-04-28 14:42:56 +08:00
py.test.raises.Exception etc., useful mostly for plugins
2010-04-30 15:53:26 +08:00
doing special outcome interpretation/tweaking
2010-05-06 01:50:59 +08:00
2010-05-02 22:36:53 +08:00
- (issue85) fix junitxml plugin to handle tests with non-ascii output
2010-05-06 01:50:59 +08:00
2010-05-02 22:36:53 +08:00
- fix/refine python3 compatibility (thanks Benjamin Peterson)
2010-05-06 01:50:59 +08:00
2010-07-30 21:05:24 +08:00
- fixes for making the jython/win32 combination work, note however:
2010-05-02 22:36:53 +08:00
jython2.5.1/win32 does not provide a command line launcher, see
http://bugs.jython.org/issue1491 . See pylib install documentation
2010-07-30 21:05:24 +08:00
for how to work around.
2010-05-06 01:50:59 +08:00
2010-05-02 22:36:53 +08:00
- fixes for handling of unicode exception values and unprintable objects
2010-05-06 01:50:59 +08:00
2010-07-30 21:05:24 +08:00
- (issue87) fix unboundlocal error in assertionold code
2010-05-06 01:50:59 +08:00
2010-05-02 22:36:53 +08:00
- (issue86) improve documentation for looponfailing
2010-05-06 01:50:59 +08:00
2010-04-30 15:53:26 +08:00
- refine IO capturing: stdin-redirect pseudo-file now has a NOP close() method
2010-05-06 01:50:59 +08:00
2010-07-30 21:05:24 +08:00
- ship distribute_setup.py version 0.6.10
2010-05-06 01:50:59 +08:00
2010-07-30 21:05:24 +08:00
- added links to the new capturelog and coverage plugins
2010-04-12 22:08:12 +08:00
2010-01-19 17:34:41 +08:00
Changes between 1.2.1 and 1.2.0
=====================================
2010-02-08 23:39:29 +08:00
- refined usage and options for "py.cleanup"::
2010-02-06 05:50:41 +08:00
py.cleanup # remove "*.pyc" and "*$py.class" (jython) files
py.cleanup -e .swp -e .cache # also remove files with these extensions
py.cleanup -s # remove "build" and "dist" directory next to setup.py files
2010-07-30 21:05:24 +08:00
py.cleanup -d # also remove empty directories
2010-02-06 05:50:41 +08:00
py.cleanup -a # synonym for "-s -d -e 'pip-log.txt'"
py.cleanup -n # dry run, only show what would be removed
2010-07-30 21:05:24 +08:00
- add a new option "py.test --funcargs" which shows available funcargs
and their help strings (docstrings on their respective factory function)
2010-02-06 05:50:41 +08:00
for a given test path
2010-07-30 21:05:24 +08:00
- display a short and concise traceback if a funcarg lookup fails
2010-02-06 05:50:41 +08:00
2010-07-30 21:05:24 +08:00
- early-load "conftest.py" files in non-dot first-level sub directories.
allows to conveniently keep and access test-related options in a ``test``
subdir and still add command line options.
2010-02-06 05:50:41 +08:00
2010-01-27 19:52:19 +08:00
- fix issue67: new super-short traceback-printing option: "--tb=line" will print a single line for each failing (python) test indicating its filename, lineno and the failure value
2010-02-06 05:50:41 +08:00
2010-01-27 19:09:30 +08:00
- fix issue78: always call python-level teardown functions even if the
2010-07-30 21:05:24 +08:00
according setup failed. This includes refinements for calling setup_module/class functions
2010-01-28 21:20:58 +08:00
which will now only be called once instead of the previous behaviour where they'd be called
multiple times if they raise an exception (including a Skipped exception). Any exception
will be re-corded and associated with all tests in the according module/class scope.
2010-02-06 05:50:41 +08:00
2010-01-19 17:34:41 +08:00
- fix issue63: assume <40 columns to be a bogus terminal width, default to 80
2010-02-06 05:50:41 +08:00
2010-07-30 21:05:24 +08:00
- fix pdb debugging to be in the correct frame on raises-related errors
2010-02-08 21:17:01 +08:00
2010-01-22 03:06:50 +08:00
- update apipkg.py to fix an issue where recursive imports might
2010-07-30 21:05:24 +08:00
unnecessarily break importing
2010-02-06 05:50:41 +08:00
2010-07-30 21:05:24 +08:00
- fix plugin links
2010-01-19 17:34:41 +08:00
Changes between 1.2 and 1.1.1
2009-11-28 03:32:21 +08:00
=====================================
2010-07-30 21:05:24 +08:00
- moved dist/looponfailing from py.test core into a new
2010-01-13 23:00:33 +08:00
separately released pytest-xdist plugin.
2010-01-17 06:33:26 +08:00
- new junitxml plugin: --junitxml=path will generate a junit style xml file
2010-07-30 21:05:24 +08:00
which is processable e.g. by the Hudson CI system.
2009-12-31 18:25:07 +08:00
2009-12-31 02:10:49 +08:00
- new option: --genscript=path will generate a standalone py.test script
2010-07-30 21:05:24 +08:00
which will not need any libraries installed. thanks to Ralf Schmitt.
2009-12-31 02:10:49 +08:00
2010-07-30 21:05:24 +08:00
- new option: --ignore will prevent specified path from collection.
Can be specified multiple times.
2009-12-25 05:23:45 +08:00
2010-07-30 21:05:24 +08:00
- new option: --confcutdir=dir will make py.test only consider conftest
files that are relative to the specified dir.
2009-12-31 22:10:32 +08:00
2010-01-02 04:03:33 +08:00
- new funcarg: "pytestconfig" is the pytest config object for access
2010-07-30 21:05:24 +08:00
to command line args and can now be easily used in a test.
2010-01-02 04:03:33 +08:00
2009-12-24 02:58:52 +08:00
- install 'py.test' and `py.which` with a ``-$VERSION`` suffix to
2010-07-30 21:05:24 +08:00
disambiguate between Python3, python2.X, Jython and PyPy installed versions.
2009-12-24 02:58:52 +08:00
2009-12-30 05:26:03 +08:00
- new "pytestconfig" funcarg allows access to test config object
2010-07-30 21:05:24 +08:00
- new "pytest_report_header" hook can return additional lines
to be displayed at the header of a test run.
2010-01-13 04:43:25 +08:00
2010-01-11 05:10:45 +08:00
- (experimental) allow "py.test path::name1::name2::..." for pointing
to a test within a test collection directly. This might eventually
2010-07-30 21:05:24 +08:00
evolve as a full substitute to "-k" specifications.
2010-01-11 05:10:45 +08:00
2010-01-03 00:17:13 +08:00
- streamlined plugin loading: order is now as documented in
2010-07-30 21:05:24 +08:00
customize.html: setuptools, ENV, commandline, conftest.
2010-01-03 00:17:13 +08:00
also setuptools entry point names are turned to canonical namees ("pytest_*")
2010-07-30 21:05:24 +08:00
- automatically skip tests that need 'capfd' but have no os.dup
2009-12-30 18:16:20 +08:00
2010-07-30 21:05:24 +08:00
- allow pytest_generate_tests to be defined in classes as well
2009-12-30 17:42:01 +08:00
2010-07-30 21:05:24 +08:00
- deprecate usage of 'disabled' attribute in favour of pytestmark
2009-12-30 23:18:59 +08:00
- deprecate definition of Directory, Module, Class and Function nodes
in conftest.py files. Use pytest collect hooks instead.
2009-12-30 19:13:38 +08:00
2009-12-30 09:36:58 +08:00
- collection/item node specific runtest/collect hooks are only called exactly
on matching conftest.py files, i.e. ones which are exactly below
the filesystem path of an item
2009-12-30 23:18:59 +08:00
- change: the first pytest_collect_directory hook to return something
will now prevent further hooks to be called.
2010-01-03 18:22:32 +08:00
- change: figleaf plugin now requires --figleaf to run. Also
change its long command line options to be a bit shorter (see py.test -h).
2010-01-03 05:48:53 +08:00
2010-01-03 06:30:46 +08:00
- change: pytest doctest plugin is now enabled by default and has a
2010-07-30 21:05:24 +08:00
new option --doctest-glob to set a pattern for file matches.
2010-01-03 06:30:46 +08:00
2010-07-30 21:05:24 +08:00
- change: remove internal py._* helper vars, only keep py._pydir
2010-01-11 21:30:50 +08:00
2010-07-30 21:05:24 +08:00
- robustify capturing to survive if custom pytest_runtest_setup
code failed and prevented the capturing setup code from running.
2009-12-30 07:11:27 +08:00
2009-12-29 23:29:48 +08:00
- make py.test.* helpers provided by default plugins visible early -
works transparently both for pydoc and for interactive sessions
2010-07-30 21:05:24 +08:00
which will regularly see e.g. py.test.mark and py.test.importorskip.
2009-12-29 23:29:48 +08:00
2010-07-30 21:05:24 +08:00
- simplify internal plugin manager machinery
2010-01-03 08:02:44 +08:00
- simplify internal collection tree by introducing a RootCollector node
2009-12-29 23:29:48 +08:00
2009-11-28 03:32:21 +08:00
- fix assert reinterpreation that sees a call containing "keyword=..."
2009-12-24 02:58:52 +08:00
2010-07-30 21:05:24 +08:00
- fix issue66: invoke pytest_sessionstart and pytest_sessionfinish
hooks on slaves during dist-testing, report module/session teardown
2010-01-12 00:09:07 +08:00
hooks correctly.
2010-07-30 21:05:24 +08:00
- fix issue65: properly handle dist-testing if no
execnet/py lib installed remotely.
2010-01-11 06:52:23 +08:00
2009-12-07 02:18:44 +08:00
- skip some install-tests if no execnet is available
2009-11-28 03:32:21 +08:00
2009-12-24 19:27:15 +08:00
- fix docs, fix internal bin/ script generation
2009-11-20 07:12:39 +08:00
Changes between 1.1.1 and 1.1.0
=====================================
2009-11-06 00:46:14 +08:00
2010-07-30 21:05:24 +08:00
- introduce automatic plugin registration via 'pytest11'
2009-11-24 22:16:58 +08:00
entrypoints via setuptools' pkg_resources.iter_entry_points
2009-11-24 00:20:36 +08:00
2010-07-30 21:05:24 +08:00
- fix py.test dist-testing to work with execnet >= 1.0.0b4
2009-11-06 00:46:14 +08:00
2010-07-30 21:05:24 +08:00
- re-introduce py.test.cmdline.main() for better backward compatibility
2009-11-06 00:46:14 +08:00
2009-11-20 16:19:29 +08:00
- svn paths: fix a bug with path.check(versioned=True) for svn paths,
2010-07-30 21:05:24 +08:00
allow '%' in svn paths, make svnwc.update() default to interactive mode
2009-11-20 16:19:29 +08:00
like in 1.0.x and add svnwc.update(interactive=False) to inhibit interaction.
2009-11-20 07:12:39 +08:00
2009-11-24 22:16:58 +08:00
- refine distributed tarball to contain test and no pyc files
2009-11-20 07:12:39 +08:00
- 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
2010-07-30 21:05:24 +08:00
the old release if needed. If there is interest
2009-11-20 07:12:39 +08:00
it could be revived into its own tool i guess.
* fix issue48 and issue59: raise an Error if the module
2010-07-30 21:05:24 +08:00
from an imported test file does not seem to come from
2009-11-20 07:12:39 +08:00
the filepath - avoids "same-name" confusion that has
been reported repeatedly
* merged Ronny's nose-compatibility hacks: now
2010-07-30 21:05:24 +08:00
nose-style setup_module() and setup() functions are
2009-11-20 07:12:39 +08:00
supported
* introduce generalized py.test.mark function marking
* reshuffle / refine command line grouping
* deprecate parser.addgroup in favour of getgroup which creates option group
2010-07-30 21:05:24 +08:00
* add --report command line option that allows to control showing of skipped/xfailed sections
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* 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.
2009-11-20 07:12:39 +08:00
* extend py.test.mark decorator to allow for positional args
2010-07-30 21:05:24 +08:00
* introduce and test "py.cleanup -d" to remove empty directories
2009-11-20 07:12:39 +08:00
* fix issue #59 - robustify unittest test collection
2010-07-30 21:05:24 +08:00
* make bpython/help interaction work by adding an __all__ attribute
2009-11-20 07:12:39 +08:00
to ApiModule, cleanup initpkg
* use MIT license for pylib, add some contributors
* remove py.execnet code and substitute all usages with 'execnet' proper
2010-07-30 21:05:24 +08:00
* fix issue50 - cached_setup now caches more to expectations
for test functions with multiple arguments.
2009-11-20 07:12:39 +08:00
* merge Jarko's fixes, issue #45 and #46
* add the ability to specify a path for py.lookup to search in
2010-07-30 21:05:24 +08:00
* fix a funcarg cached_setup bug probably only occuring
in distributed testing and "module" scope with teardown.
2009-11-20 07:12:39 +08:00
* many fixes and changes for making the code base python3 compatible,
2010-07-30 21:05:24 +08:00
many thanks to Benjamin Peterson for helping with this.
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* consolidate builtins implementation to be compatible with >=2.3,
2009-11-20 07:12:39 +08:00
add helpers to ease keeping 2 and 3k compatible code
* deprecate py.compat.doctest|subprocess|textwrap|optparse
2010-07-30 21:05:24 +08:00
* deprecate py.magic.autopath, remove py/magic directory
2009-11-20 07:12:39 +08:00
* move pytest assertion handling to py/code and a pytest_assertion
2010-07-30 21:05:24 +08:00
plugin, add "--no-assert" option, deprecate py.magic namespaces
in favour of (less) py.code ones.
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* consolidate and cleanup py/code classes and files
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* cleanup py/misc, move tests to bin-for-dist
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* introduce delattr/delitem/delenv methods to py.test's monkeypatch funcarg
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* consolidate py.log implementation, remove old approach.
2009-11-20 07:12:39 +08:00
* introduce py.io.TextIO and py.io.BytesIO for distinguishing between
2010-07-30 21:05:24 +08:00
text/unicode and byte-streams (uses underlying standard lib io.*
if available)
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* make py.unittest_convert helper script available which converts "unittest.py"
2009-11-20 07:12:39 +08:00
style files into the simpler assert/direct-test-classes py.test/nosetests
2010-07-30 21:05:24 +08:00
style. The script was written by Laura Creighton.
* simplified internal localpath implementation
2009-11-20 07:12:39 +08:00
Changes between 1.0.1 and 1.0.2
=====================================
2010-07-30 21:05:24 +08:00
* fixing packaging issues, triggered by fedora redhat packaging,
also added doc, examples and contrib dirs to the tarball.
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* added a documentation link to the new django plugin.
2009-11-20 07:12:39 +08:00
Changes between 1.0.0 and 1.0.1
=====================================
2010-07-30 21:05:24 +08:00
* added a 'pytest_nose' plugin which handles nose.SkipTest,
nose-style function/method/generator setup/teardown and
tries to report functions correctly.
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* capturing of unicode writes or encoded strings to sys.stdout/err
work better, also terminalwriting was adapted and somewhat
unified between windows and linux.
2009-11-20 07:12:39 +08:00
* improved documentation layout and content a lot
* added a "--help-config" option to show conftest.py / ENV-var names for
2010-07-30 21:05:24 +08:00
all longopt cmdline options, and some special conftest.py variables.
renamed 'conf_capture' conftest setting to 'option_capture' accordingly.
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* fix issue #27: better reporting on non-collectable items given on commandline
2009-11-20 07:12:39 +08:00
(e.g. pyc files)
2010-07-30 21:05:24 +08:00
* fix issue #33: added --version flag (thanks Benjamin Peterson)
2009-11-20 07:12:39 +08:00
* fix issue #32: adding support for "incomplete" paths to wcpath.status()
2010-07-30 21:05:24 +08:00
* "Test" prefixed classes are *not* collected by default anymore if they
have an __init__ method
2009-11-20 07:12:39 +08:00
* monkeypatch setenv() now accepts a "prepend" parameter
* improved reporting of collection error tracebacks
2010-07-30 21:05:24 +08:00
* simplified multicall mechanism and plugin architecture,
renamed some internal methods and argnames
2009-11-20 07:12:39 +08:00
Changes between 1.0.0b9 and 1.0.0
=====================================
2010-07-30 21:05:24 +08:00
* more terse reporting try to show filesystem path relatively to current dir
2009-11-20 07:12:39 +08:00
* 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
2010-07-30 21:05:24 +08:00
and counted separately.
* dist-testing: properly handle test items that get locally
collected but cannot be collected on the remote side - often
2009-11-20 07:12:39 +08:00
due to platform/dependency reasons
* simplified py.test.mark API - see keyword plugin documentation
* integrate better with logging: capturing now by default captures
2010-07-30 21:05:24 +08:00
test functions and their immediate setup/teardown in a single stream
2009-11-20 07:12:39 +08:00
* capsys and capfd funcargs now have a readouterr() and a close() method
2010-07-30 21:05:24 +08:00
(underlyingly py.io.StdCapture/FD objects are used which grew a
2009-11-20 07:12:39 +08:00
readouterr() method as well to return snapshots of captured out/err)
2010-07-30 21:05:24 +08:00
* make assert-reinterpretation work better with comparisons not
2009-11-20 07:12:39 +08:00
returning bools (reported with numpy from thanks maciej fijalkowski)
2010-07-30 21:05:24 +08:00
* reworked per-test output capturing into the pytest_iocapture.py plugin
and thus removed capturing code from config object
2009-11-20 07:12:39 +08:00
* 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
2010-07-30 21:05:24 +08:00
* introduced pytest_keyboardinterrupt hook and
refined pytest_sessionfinish hooked, added tests.
2009-11-20 07:12:39 +08:00
* workaround a buggy logging module interaction ("closing already closed
2010-07-30 21:05:24 +08:00
files"). Thanks to Sridhar Ratnakumar for triggering.
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* if plugins use "py.test.importorskip" for importing
a dependency only a warning will be issued instead
of exiting the testing process.
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* many improvements to docs:
2009-11-20 07:12:39 +08:00
- refined funcargs doc , use the term "factory" instead of "provider"
2010-07-30 21:05:24 +08:00
- added a new talk/tutorial doc page
2009-11-20 07:12:39 +08:00
- better download page
- better plugin docstrings
- added new plugins page and automatic doc generation script
2010-07-30 21:05:24 +08:00
* 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.
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* tweaked doctest output for docstrings in py modules,
thanks Radomir.
2009-11-20 07:12:39 +08:00
Changes between 1.0.0b3 and 1.0.0b7
=============================================
2010-07-30 21:05:24 +08:00
* renamed py.test.xfail back to py.test.mark.xfail to avoid
2009-11-20 07:12:39 +08:00
two ways to decorate for xfail
2010-07-30 21:05:24 +08:00
* re-added py.test.mark decorator for setting keywords on functions
(it was actually documented so removing it was not nice)
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* remove scope-argument from request.addfinalizer() because
request.cached_setup has the scope arg. TOOWTDI.
2009-11-20 07:12:39 +08:00
* perform setup finalization before reporting failures
2010-07-30 21:05:24 +08:00
* 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)
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* apply patch from Daniel Peolzleithner (issue #23)
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* resolve issue #18, multiprocessing.Manager() and
redirection clash
2009-11-20 07:12:39 +08:00
* make __name__ == "__channelexec__" for remote_exec code
Changes between 1.0.0b1 and 1.0.0b3
=============================================
2010-07-30 21:05:24 +08:00
* plugin classes are removed: one now defines
hooks directly in conftest.py or global pytest_*.py
files.
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* added new pytest_namespace(config) hook that allows
to inject helpers directly to the py.test.* namespace.
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* documented and refined many hooks
* added new style of generative tests via
pytest_generate_tests hook that integrates
well with function arguments.
2009-11-20 07:12:39 +08:00
Changes between 0.9.2 and 1.0.0b1
=============================================
2010-07-30 21:05:24 +08:00
* introduced new "funcarg" setup method,
see doc/test/funcarg.txt
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* introduced plugin architecuture and many
new py.test plugins, see
2009-11-20 07:12:39 +08:00
doc/test/plugins.txt
2010-07-30 21:05:24 +08:00
* teardown_method is now guaranteed to get
called after a test method has run.
2009-11-20 07:12:39 +08:00
* new method: py.test.importorskip(mod,minversion)
will either import or call py.test.skip()
* completely revised internal py.test architecture
2010-07-30 21:05:24 +08:00
* new py.process.ForkedFunc object allowing to
2009-11-20 07:12:39 +08:00
fork execution of a function to a sub process
2010-07-30 21:05:24 +08:00
and getting a result back.
2009-11-20 07:12:39 +08:00
XXX lots of things missing here XXX
Changes between 0.9.1 and 0.9.2
===============================
2010-07-30 21:05:24 +08:00
* refined installation and metadata, created new setup.py,
now based on setuptools/ez_setup (thanks to Ralf Schmitt
2009-11-20 07:12:39 +08:00
for his support).
2010-07-30 21:05:24 +08:00
* improved the way of making py.* scripts available in
windows environments, they are now added to the
Scripts directory as ".cmd" files.
2009-11-20 07:12:39 +08:00
2010-07-30 21:05:24 +08:00
* py.path.svnwc.status() now is more complete and
2009-11-20 07:12:39 +08:00
uses xml output from the 'svn' command if available
(Guido Wesdorp)
* fix for py.path.svn* to work with svn 1.5
(Chris Lamb)
2010-07-30 21:05:24 +08:00
* fix path.relto(otherpath) method on windows to
2009-11-20 07:12:39 +08:00
use normcase for checking if a path is relative.
2010-07-30 21:05:24 +08:00
* py.test's traceback is better parseable from editors
2009-11-20 07:12:39 +08:00
(follows the filenames:LINENO: MSG convention)
(thanks to Osmo Salomaa)
2010-07-30 21:05:24 +08:00
* fix to javascript-generation, "py.test --runbrowser"
2009-11-20 07:12:39 +08:00
should work more reliably now
2010-07-30 21:05:24 +08:00
* removed previously accidentally added
py.test.broken and py.test.notimplemented helpers.
2009-11-20 07:12:39 +08:00
* 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]