Commit Graph

811 Commits

Author SHA1 Message Date
holger krekel 2ee6653ff7 update distribute
--HG--
branch : trunk
2010-04-23 12:31:11 +02:00
holger krekel 85d35f7418 introduce an experimental approach for allowing dynamic addition of hooks from plugin. Plugins may register new hooks by implementing the new
pytest_registerhooks(pluginmanager)

and call

    pluginmanager.registerhooks(module)

with the referenced 'module' object containing the hooks.

The new pytest_registerhooks is called after pytest_addoption
and before pytest_configure.

--HG--
branch : trunk
2010-04-22 11:57:57 +02:00
holger krekel 536252cb2e refine win32 checks to also work on top of jython/win32
--HG--
branch : trunk
2010-04-20 10:45:41 -07:00
holger krekel e45cd7e35e fix issue86 - point to pytest-xdist plugin for looponfailing feature.
--HG--
branch : trunk
2010-04-14 15:05:39 +02:00
holger krekel 1d28dcf140 add links to new plugins
--HG--
branch : trunk
2010-04-12 16:08:12 +02:00
holger krekel 222a08ec03 going for the 1.2.1 release
--HG--
branch : trunk
2010-02-08 16:39:29 +01:00
holger krekel c7326f1949 fix a pdb problem when dropping to a "raises" related failure
--HG--
branch : trunk
2010-02-08 14:17:01 +01:00
holger krekel d163d92b33 actually look into all non-dot subdirs for conftest.py files - recursive walk would be too heavy for large source trees but first-level subdirs are fine IMO. Note that prior to py.test 1.0 doing this "look-ahead" was not easily doable because it was hard to avoid global state in conftest.py, this is not true anymore - so i feel ok telling people to cleanup their conftest files if they get problems (you can imagine people doing all kinds of things at global conftest.py module scope, can't you?)
--HG--
branch : trunk
2010-02-06 22:37:04 +01:00
holger krekel a3d15b2c60 refined usage and options for "py.cleanup":
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
    py.cleanup -d  # also remove empty directories
    py.cleanup -a  # synonym for "-s -d -e 'pip-log.txt'"
    py.cleanup -n  # dry run, only show what would be removed

--HG--
branch : trunk
2010-02-05 22:50:41 +01:00
holger krekel 3234e6e978 add a --funcargs option showing available funcargs
--HG--
branch : trunk
2010-02-04 23:45:07 +01:00
holger krekel f95877a09b show a short and nice traceback for funcarg lookup errors
--HG--
branch : trunk
2010-02-04 16:01:02 +01:00
holger krekel 7bd60b5abb check and load test*/conftest.py early from anchors -
this makes it a bit more convenient to have command line options
available from a root directory of a project that does not
directly contain a conftest.py

--HG--
branch : trunk
2010-02-04 12:26:53 +01:00
holger krekel a2af204687 again addresses issue78 : we now call teardown also if setup raised a Skipped exception.
I also made sure, setup_module/class will only be called once - before they'd be call again
and again if they raise an error or a skip - for each test in their scope.

--HG--
branch : trunk
2010-01-28 14:20:58 +01:00
holger krekel 98608611af closes #67 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
--HG--
branch : trunk
2010-01-27 12:52:19 +01:00
holger krekel b18ab6e03b fix issue78 - now python-level teardown functions are now called even if the setup failed.
Important detail: if the setup raises a Skipped exception, teardown will not be called.  This helps
to avoid breaking setup_module/class that performs a skip - it would otherwise internally
be considered as a "successful" setup in order to have teardown called later.  I guess
it also makes sense to treat Skip specially because it is unlikely a teardown should be
called if a Skip was raised on setup.

In any case, failing setups and teardowns will be reported separately.

--HG--
branch : trunk
2010-01-27 12:09:30 +01:00
holger krekel aa6d2a37e6 upgrade apipkg.py to fix a potential recursive import issue
--HG--
branch : trunk
2010-01-21 20:06:50 +01:00
holger krekel 14feeb9ca1 fix doc links, bump to dev version
--HG--
branch : trunk
2010-01-21 19:34:42 +01:00
holger krekel f7c562e492 better default for bogus terminal getdimensions() call, fixes issue63
--HG--
branch : trunk
2010-01-19 10:34:41 +01:00
holger krekel 09671eb6fc rename logxml plugin to junitxml
--HG--
branch : trunk
2010-01-16 23:33:26 +01:00
holger krekel 40f41496d8 remove dist-testing and looponfail code from core. there remain some (pytest_runner particularly) tests that test both plain and dist modes which cannot be easily dis-entangled. food for thought.
--HG--
branch : trunk
2010-01-13 16:00:33 +01:00
holger krekel d53572a710 introduce a new pytest_report_header(hook) hook to add additional test-run relevant information to the header of a test report.
--HG--
branch : trunk
2010-01-12 21:43:25 +01:00
holger krekel 3296939eda fix sessionstart/sessionfinish handling at the slave side, set "session.nodeid" to id of the slave and make sure "final" teardown failures are reported nicely. fixes issue66.
--HG--
branch : trunk
2010-01-11 17:09:07 +01:00
holger krekel ba1451330e refine rsyncing and internal dir/transferal handling: don't transfer roots in a popen- no-chdir situation and only use one py._pydir everywhere
--HG--
branch : trunk
2010-01-11 14:30:50 +01:00
holger krekel 352e305431 fix and test bug: dist-testing now works again without execnet/pylib installed remotely. fixes issue65.
--HG--
branch : trunk
2010-01-10 23:52:23 +01:00
holger krekel 3a23baf484 add to changelog, remove docstring
--HG--
branch : trunk
2010-01-10 22:10:45 +01:00
holger krekel c6c7d041b7 disable default inclusion of figleaf plugin because it caused test
failures wrt to capturing/logging interaction.  pytest_figleaf should
anyway better become its own externally living plugin.

--HG--
branch : trunk
2010-01-03 11:22:32 +01:00
holger krekel 1b34492108 vastly simplify and cleanup collection initialization by internally
introducing a RootCollector. Note that the internal node
methods _fromtrail and _totrail are shifted to the still internal
config._rootcol.fromtrail/totrail

--HG--
branch : trunk
2010-01-03 01:02:44 +01:00
holger krekel eebeb1b257 enable doctest plugin by default, add a --doctest-glob option and some documentation, regen plugin docs.
--HG--
branch : trunk
2010-01-02 23:30:46 +01:00
holger krekel 56a936993c enhance figleaf setup, enabled by default now (requires --figleaf). Generalize internal ability to show "hints" at the end of "-h".
--HG--
branch : trunk
2010-01-02 22:48:53 +01:00
holger krekel f3e62e38aa streamlined plugin loading: order is now setuptools, ENV, commandline
and setuptools entry point names are turned to canonical namees ("pytest_*")

--HG--
branch : trunk
2010-01-02 17:17:13 +01:00
holger krekel 47df1e16b6 fix some failures introduced by the last commit, document new "pytestconfig" funcarg
--HG--
branch : trunk
2010-01-01 21:03:33 +01:00
holger krekel 2752168a58 introduce --confcutdir option to early-inhibit lookup of conftest files above a certain directory.
--HG--
branch : trunk
2009-12-31 15:10:32 +01:00
holger krekel 587951966f adding a logxml plugin and a --xml=path option generating a junit-xml style result log. The xml result log can be parsed nicely by hudson.
Initial code was based on Ross Lawley's pytest_xmlresult plugin.

--HG--
branch : trunk
2009-12-31 11:25:07 +01:00
holger krekel fa0c7b18bf move standalone script to become a plugin offering "--genscript",
adjust paths accordingly and add CHANGELOG entry.

--HG--
branch : trunk
2009-12-30 19:10:49 +01:00
holger krekel f5ea19858c deprecate direct definition of Directory, Module, ... in conftest.py's,
add some pytest collect related tests + some refinements.

--HG--
branch : trunk
2009-12-30 16:18:59 +01:00
holger krekel 4656bc4c97 deprecate use of 'disabled'
--HG--
branch : trunk
2009-12-30 12:13:38 +01:00
holger krekel a15afb5e48 skip tests using 'capfd' funcarg but not having os.dup. cleanup issues and regen plugin docs.
--HG--
branch : trunk
2009-12-30 11:16:20 +01:00
holger krekel ae63605ac0 generalize hook calling from collection nodes but stop short
of allowing general hooks in python test modules. It'd be
easily possible (a 1-line change) but considering it i refrained
from it because the collector API is a bit too low level.

pytest_generate_tests and funcarg factories have a limited
directly useful interface and are thus less confusing - those
are taking advantage of hook discovery in python test modules.

--HG--
branch : trunk
2009-12-30 10:42:01 +01:00
holger krekel 631dfe9f13 only consider matching conftest plugins for discovering hooks related to collection nodes.
--HG--
branch : trunk
2009-12-30 02:36:58 +01:00
holger krekel 9d01975c78 fix capturing to be more careful during teardown when a setup never happened (due to e.g. an error in user-provided runtest_setup code)
--HG--
branch : trunk
2009-12-30 00:11:27 +01:00
holger krekel 77b640d1b7 streamline some tests and overall reduce py.test.ensuretemp usage, note down issue about deprecation .
--HG--
branch : trunk
2009-12-29 22:26:03 +01:00
holger krekel db21cac694 cleanup py.test.* namespace, docstrings for improved pydoc and interactive usage.
use new apipkg __onfirstaccess__ feature to initialize the py.test namespace with the default plugins.  This, besides other good implications, means that you can now type:  pydoc py.test   or help(py.test)

--HG--
branch : trunk
2009-12-29 16:29:48 +01:00
holger krekel 6d46efa87a introduce --ignore option to ignore paths during collection
--HG--
branch : trunk
2009-12-24 22:23:45 +01:00
holger krekel 8a5c3c0c69 cleanup bin-script creation, fix docs, add FAQ entry about py.test --version
--HG--
branch : trunk
2009-12-24 12:27:15 +01:00
holger krekel 1580b2c8da create version/interpreter differentiated py.test$VER for cpython, jython, pypy-c's, prepare 1.1.2 release
--HG--
branch : trunk
2009-12-23 19:58:52 +01:00
holger krekel 90306e0089 skip tests properly
--HG--
branch : trunk
2009-12-06 19:18:44 +01:00
holger krekel 56c1391a16 fix keyword calling
--HG--
branch : trunk
2009-11-27 20:32:21 +01:00
holger krekel 9d5b313aad adjustments and fixes to test run, distribution files. thanks thm.
--HG--
branch : trunk
2009-11-24 15:16:58 +01:00
holger krekel ed03eef81b introduce plugin discovery through setuptools "pytest11" entrypoints
and refine execnet dependency handling.  Prepare 1.1 release

--HG--
branch : trunk
2009-11-23 17:20:36 +01:00
holger krekel ecb19b751a add % as allowed char, condense CHANGELOG
--HG--
branch : trunk
2009-11-20 09:19:29 +01:00
holger krekel 0060869e79 move CHANGELOG back to root level, add entries
--HG--
branch : trunk
2009-11-20 00:12:39 +01:00
holger krekel e0bca8fe51 fix up install docs and plugin docs for the final release
have CHANGELOG be a file containing links instead of a symlink
beause it causes issues with pip-install on some systems.

--HG--
branch : trunk
2009-11-05 17:46:14 +01:00
holger krekel 079a2327ec kill/replace some execnet debug code
bump version to "trunk" on trunk
add "py" to rsyncdirs

--HG--
branch : trunk
2009-08-20 16:41:44 +02:00
holger krekel d668acfd99 enable nose by default
--HG--
branch : 1.0.x
2009-08-19 17:53:08 +02:00
holger krekel b1feb81b8a simplify approach to encoding of sys.stdout/stderr files, encode unicode strings and pass-through non-unicode strings
--HG--
branch : 1.0.x
2009-08-19 16:42:29 +02:00
holger krekel 5e4fcdd14e added a pytest_helpconfig plugin which groups --version and the new "--help-config" option. rename options and configuration names. streamlines docs.
--HG--
branch : 1.0.x
2009-08-19 15:45:01 +02:00
holger krekel 36189a7aa7 [mq]: 101doc
--HG--
branch : 1.0.x
2009-08-18 19:04:57 +02:00
holger krekel d2f497084e fixing svn status on incomplete files issue #32
--HG--
branch : 1.0.x
2009-08-14 18:01:16 +02:00
Benjamin Peterson d702f4da14 add a --version option to print the pylib version
--HG--
branch : 1.0.x
2009-08-14 09:16:40 -05:00
holger krekel 7b906ca763 [mq]: monkey
--HG--
branch : 1.0.x
2009-08-13 20:10:12 +02:00
holger krekel 37976be529 [mq]: flexcom
--HG--
branch : 1.0.x
2009-08-11 19:00:41 +02:00
holger krekel b552f6eb46 * add pytest_nose plugin
* have unittest functions always receive a fresh instance

--HG--
branch : 1.0.x
2009-08-10 11:27:13 +02:00
holger krekel a01e4769cc simplify internal plugin dispatching code, rename parts of the py._com plugin helpers
--HG--
branch : 1.0.x
2009-08-09 23:51:25 +02:00
holger krekel d41949a6e3 Test* classes with an __init__ method are not collected anymore
--HG--
branch : 1.0.x
2009-08-06 18:15:21 +02:00
holger krekel 58c6971dc8 nicer error message for non-collectable test files / items
fixes issue #27

--HG--
branch : 1.0.x
2009-08-06 15:26:45 +02:00
holger krekel cea46a86aa [mq]: rename
--HG--
branch : 1.0.x
2009-08-06 15:02:38 +02:00
holger krekel afc8e6bd91 more terse reporting of collection errors / tracebacks, bump version number aiming for 1.0.1
--HG--
branch : 1.0.x
2009-08-06 14:49:55 +02:00
holger krekel 8fcdac9dd6 * fix capturing and unicode printing in tests
* introduce "_encoding" to py/io/terminalwriter writing
* beautify a few __repr__ for better internal debugging

--HG--
branch : 1.0.x
2009-08-06 14:34:19 +02:00
holger krekel 8c8617c354 * rename "rep" to "report" in reporting hooks
* refine docs
* bump version data
* improve announcement

--HG--
branch : 1.0.x
2009-08-04 12:00:04 +02:00
holger krekel 737c32c783 handle final teardown properly, add a new experimental hook for it.
--HG--
branch : 1.0.x
2009-07-31 14:22:02 +02:00
holger krekel 61c53602f2 introduce new "Error" outcome and group setup/teardown and collection failures into that category. Report them separately.
--HG--
branch : 1.0.x
2009-07-31 14:22:02 +02:00
holger krekel be949f4037 * reworked capturing to only capture once per runtest cycle
* added readouterr() method to py.io capturing helpers

--HG--
branch : 1.0.x
2009-07-31 14:21:02 +02:00
holger krekel 2514b8faaf fix a svn-1.6 issue
--HG--
branch : 1.0.x
2009-07-30 21:31:31 +02:00
holger krekel ad34e50b71 properly handle test items that get locally collected but cannot be collected on the remote side (often due to platform reasons)
--HG--
branch : 1.0.x
2009-07-30 09:52:12 +02:00
holger krekel dcf194ebb8 simplify py.test.mark API,
add more plugin docs

--HG--
branch : 1.0.x
2009-07-28 14:26:32 +02:00
holger krekel 5b205e0711 improve assert re-inteprpretation for comparisons
--HG--
branch : 1.0.x
2009-07-26 15:31:23 +02:00
holger krekel 04e9197fd6 * reworked per-test output capturing into the pytest_iocapture.py plugin
* removed all capturing code from config object and pytest_default plugins

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

* added a few logging tests

--HG--
branch : 1.0.x
2009-07-25 18:09:01 +02:00
holger krekel 875ebc18ef targetting a b9
--HG--
branch : 1.0.x
2009-07-23 20:16:27 +02:00
holger krekel 87daedd719 regen MANIFEST, update changelog
--HG--
branch : 1.0.x
2009-07-22 14:58:05 +02:00
holger krekel 16aa1571c0 new cleaner layout, many improvements to docs
--HG--
branch : 1.0.x
2009-07-20 18:54:08 +02:00
holger krekel 8be0ea942a introduced pytest_keyboardinterrupt hook
removed optional argument from pytest_sessionfinish hook

--HG--
branch : 1.0.x
2009-07-20 14:01:40 +02:00
holger krekel 013381fae1 * add a script for generating plugin docs
* improve generation of docs
* refine plugins docs

--HG--
branch : 1.0.x
2009-07-14 21:17:13 +02:00
holger krekel 605f36c905 fix logging interaction issue
--HG--
branch : trunk
2009-07-09 13:12:00 +02:00
holger krekel 8f0a85aee1 * streamlining plugin docstrings
* better organisation of example directory, also does not break
  whole-test run anymore

--HG--
branch : 1.0.x
2009-07-08 19:18:26 +02:00
holger krekel 81d5e572ca merging some old changes (still struggling with mercurial a bit)
--HG--
branch : 1.0.x
2009-07-08 16:44:40 +02:00
holger krekel 88a0714dfa * refix handling of partial setup failures
* shuffle / consolidate related tests
* re-gen setup.py

--HG--
branch : 1.0.x
2009-07-08 16:41:30 +02:00
holger krekel 183af95526 * refined funcarg docs and CHANGELOG
* fixed funcarg setup and error-raising issue

--HG--
branch : 1.0.x
2009-07-05 14:22:01 +02:00
holger krekel 1f5d156ab3 also aadd a changelog entry
--HG--
branch : 1.0.x
2009-07-01 14:37:00 +01:00
holger krekel 8b7dfb29c5 re-introduce py.test.mark and move py.test.xfail to py.test.mark.xfail
--HG--
branch : 1.0.x
2009-06-28 13:27:34 +02:00
holger krekel bd8f68555d re-adding py.test.mark as documented (!) by adding pytest_keyword plugin
--HG--
branch : 1.0.x
2009-06-28 13:19:43 +02:00
holger krekel 296a660a73 doc refinements
introduce '__channelexec__' + docs

--HG--
branch : 1.0.x
2009-06-26 17:48:46 +02:00
holger krekel 2b12f3f538 resolves issue 18 multiprocessing py.test co-existence
add fileno() method and test DontReadFromInput redirection some more

--HG--
branch : 1.0.x
2009-06-24 16:35:01 +02:00
holger krekel 74ba91dd50 resolve issue 23
--HG--
branch : 1.0.x
2009-06-24 16:24:20 +02:00
holger krekel c491a708e0 add test and fix keyword recogniation, thanks Andreas Kloeckner
--HG--
branch : 1.0.x
2009-06-24 16:04:42 +02:00
holger krekel f531a1d6c9 addresses issue #22
allow test functions to have no func_code

--HG--
branch : 1.0.x
2009-06-24 15:55:57 +02:00
holger krekel 7602096f81 perform state setup finalization earlier
--HG--
branch : 1.0.x
2009-06-24 15:43:37 +02:00
holger krekel 4ab0f25b05 remove scope argument from request.addfinalizer
--HG--
branch : 1.0.x
2009-06-23 17:10:52 +02:00
holger krekel a07d1a4391 remove TODO file (mostly done, superflous or in the issue tracker),
remove keyword subsitution in text files.
regen setup with hg info instead of svn.

--HG--
branch : trunk
2009-06-23 12:12:45 +02:00
holger krekel 53dc595113 b3, fix (likelY) windows-path-comparison related issue at plugin registration
link to PyPI

--HG--
branch : trunk
2009-06-19 13:05:44 +02:00
holger krekel 6de02a7976 snapshot 1.0.0b2
--HG--
branch : trunk
2009-06-19 12:19:59 +02:00
holger krekel 4a48a50e3b * introduce and document new pytest_namespace hook
* remove py.test.mark helper
* move xfail to work directly on py.test namespace, simplified

--HG--
branch : trunk
2009-06-18 17:19:12 +02:00
holger krekel bcb30d1c7a bah - i guess i rather keep using setuptools for 1.0 because
of the issue of installing non-setuptools mediated windows
scripts on previously installed with setuptools ones

--HG--
branch : trunk
2009-06-17 21:08:19 +02:00
holger krekel 4a78daf7f3 * refine collect hooks and docs, remove pytest_collect_recurse
* write and extend extension docs

--HG--
branch : trunk
2009-06-15 17:28:55 +02:00
hpk fa7fff373f [svn r64077] sync from hg-trunk
--HG--
branch : trunk
2009-04-14 23:04:57 +02:00
holger krekel ae6ba1c0a8 adding a bit to changelog although that's almost hopeless
--HG--
branch : trunk
2009-04-14 22:40:46 +02:00
hpk 1bd4afee0b [svn r58690] * add to TODO, changelog
* regen setup

--HG--
branch : trunk
2008-10-06 21:50:35 +02:00
hpk cc10d84088 [svn r58308] * de-generalize conditional skips and only care
nicely for common tedious causes of skipping:
  import a module and checking it has a certain
  version.  usage example:

  docutils = py.test.importorskip(docutils, minversion="0.4")

* used new helper and cleanup skipping logic in py lib

--HG--
branch : trunk
2008-09-21 17:15:28 +02:00
hpk e77fab82ee [svn r58297] add a new way of conditionally skipping a test:
py.test.skip(ifraises="...")

see more info in the added doc.

also remove a redundant raises test and
cleanup raises code a bit.

--HG--
branch : trunk
2008-09-21 14:50:56 +02:00
hpk d7f4dd3794 [svn r57548] * introduce py.process.ForkedFunc object (previously lived at
py.io and before that py.test)
* avoid deprecated py/misc/terminal_helper.py
* starting changelog for 1.0

--HG--
branch : trunk
2008-08-21 14:12:20 +02:00
hpk a999dc8472 [svn r57540] merge changes from release branch back
[svn merge -r 57430:HEAD ../release/0.9.x/ .]

* cmdline script organisation
* execnet windows fixes
* documentation updates
* test skips

also regen setup.py

--HG--
branch : trunk
2008-08-21 12:18:58 +02:00
hpk 4115e975d1 [svn r57429] merging/porting the release branch changes and
cleanups to trunk.

svn merge -r 56716:HEAD ../release/0.9.x/ to trunk

--HG--
branch : trunk
2008-08-18 17:08:39 +02:00