Commit Graph

1504 Commits

Author SHA1 Message Date
holger krekel cf255cd643 some special handling of stdin capturing, unification, un-xfail the win32 test
--HG--
branch : trunk
2010-05-18 12:12:34 -07:00
holger krekel 9f5e6f9761 simplify and unify FDCapture API and usage:
* FDCapture now takes care through the 'patchsys' option to
  also set sys.stdin/out/err - setfiles/unsetfiles methods removed -
  i doubt anybody uses this outside of py.test's own old usage.
* stdin also goes through FDCapture now.

--HG--
branch : trunk
2010-05-18 20:03:44 +02:00
holger krekel da097c9d67 deal gracefully with invalid file descriptors - don't capture the particular stream
--HG--
branch : trunk
2010-05-18 16:52:56 +02:00
holger krekel 4f5d7948f7 - try to fix the nightly failures by refining internal capturing mechanism
and adding tests, including a "lsof" test for making sure the number of
  open file descriptors does not increase.
- also move a py.io related logging test to testing/io

--HG--
branch : trunk
2010-05-18 16:01:58 +02:00
holger krekel e71685736e fix issue96 - make capturing more resilient against KeyboardInterrupt
--HG--
branch : trunk
2010-05-17 19:00:39 +02:00
holger krekel 5876736890 tentative fix to py3's dependency on a filename->module->__loader__ chain
for executing inspect.findsource ...

--HG--
branch : trunk
2010-05-14 23:26:27 +02:00
holger krekel 0cebee2d24 bump version to 1.3.1a1 for now
--HG--
branch : trunk
2010-05-12 10:30:34 +02:00
holger krekel 379390a8aa remove code.new() function and store lines directly into linecache.cache instead.
This avoids the need for custom code objects, improving compatibility for jython
and pypy-c.

--HG--
branch : trunk
2010-05-11 22:54:04 +02:00
holger krekel 8ba2a98e11 allow to run py.test.cmdline.main() multiple times.
--HG--
branch : trunk
2010-05-11 19:56:22 +02:00
holger krekel 0f5ed3abc7 avoid helper functions showing up in py.test tracebacks
--HG--
branch : trunk
2010-05-11 17:43:56 +02:00
holger krekel f266c8f92f fix init-check to work also on pypy-c (armin around)
--HG--
branch : trunk
2010-05-09 12:27:04 +02:00
holger krekel ee036223ce deprecate --report option in favour of a new shorter and easier to remember -r option: this takes a string argument consisting of any combination of 'xsfX'
Those letters basically correspond to the letters you see during terminal reporting.

--HG--
branch : trunk
2010-05-05 19:50:59 +02:00
holger krekel c933ada7fb new --runxfail option to ignore xfail markers on functions
--HG--
branch : trunk
2010-05-04 13:02:27 +02:00
holger krekel 28150c7486 add unit-tests for xfail and refine xfail handling and reporting
--HG--
branch : trunk
2010-05-04 12:37:56 +02:00
holger krekel dd7fd97810 add a terminalreporter.testid method
--HG--
branch : trunk
2010-05-04 12:37:52 +02:00
holger krekel 1a8b2838fa add new parameters:
xfail(run=False) will not run expected-to-fail tests
xfail(reason=True) will report the specified reason

--HG--
branch : trunk
2010-05-02 22:13:16 +02:00
holger krekel 82d4aae571 some internal fixes regarding the new required hook-finding prefix
--HG--
branch : trunk
2010-05-02 17:10:38 +02:00
holger krekel fd473d4002 refine and test new hook registration, now it is called "pytest_addhooks"
similar to pytest_addoption and raises on bogus input.

--HG--
branch : trunk
2010-05-02 16:36:53 +02:00
holger krekel 45e10f4c48 rename pytest_ignore_collect_path to pytest_ignore_collect before release
--HG--
branch : trunk
2010-05-02 15:24:02 +02:00
holger krekel 3efb8028fb update changelog, install info and bum version to 1.3.0
rather than 1.2.2 because of the added features

--HG--
branch : trunk
2010-05-02 15:06:20 +02:00
Ronny Pfannschmidt b3ce06bbf9 add close method to DontReadFromInput so multiprocessing can close it
--HG--
branch : trunk
2010-04-29 19:46:43 +02:00
holger krekel 962d0fe2be introduce new pytest_pycollect_makemodule(path, parent) hook for
allowing customization of the Module collection object for a matching test module.

--HG--
branch : trunk
2010-04-29 16:53:29 +02:00
holger krekel 811408959f introduce a new pytest_ignore_collect_path(path, config) hook -
returning a true value will prevent considering the path for collection
The hook is called for both files and directory paths.

--HG--
branch : trunk
2010-04-29 16:20:55 +02:00
holger krekel 25ed74a77a refine to allow more characters for instance reprs like it was before
--HG--
branch : trunk
2010-04-29 15:52:59 +02:00
holger krekel 5ece3858e4 introduce new py.io.saferepr for printing the 'repr' of an object safely
and without consuming too much space

--HG--
branch : trunk
2010-04-29 14:17:07 +02:00
holger krekel 5dc66bb4ca make py.io.ansi_print and py.io.get_terminal_width() directly available.
--HG--
branch : trunk
2010-04-29 10:49:50 +02:00
holger krekel 030548bc73 expose py.code._reinterpret functions so that pypy and internal
uses don't need to go through internal implementation imports

--HG--
branch : trunk
2010-04-29 01:20:56 +02:00
Benjamin Peterson 78d67c007b be more robust about bad std stream encodings
--HG--
branch : trunk
2010-04-28 17:19:49 -05:00
Benjamin Peterson d93016d85f remove the unused return value of fnmatch_lines
--HG--
branch : trunk
2010-04-28 17:12:38 -05:00
Benjamin Peterson f2be437daa some py3 encoding fixes
Also return True if fnmatch succeeds.

--HG--
branch : trunk
2010-04-28 16:51:36 -05:00
holger krekel 22a50a5b88 * various jython related fixes.
* more care for print-errors including unicode-encoding related errors.

--HG--
branch : trunk
2010-04-28 15:24:38 +02:00
holger krekel 37cdf17e0e fix some py3 issues, particularly for 3.1.2 which has truncate(0) not change the file position
so that a seek(0) is needed in addition.

--HG--
branch : trunk
2010-04-28 13:22:05 +02:00
holger krekel 78d33a2f28 * rather expose internal exceptions under py.test.ACTION.Exception
with ACTION being skip, fail, exit, raises.
* move and refine test_outcome.py tests into runner tests

--HG--
branch : trunk
2010-04-28 08:42:56 +02:00
holger krekel d5e463605e * properly expose and document runtest-protocol related Exceptions
and move all definitions to the runner plugin for now.

* also move EXIT codes to session.py, obsoleting outcome.py alltogether.

--HG--
branch : trunk
2010-04-27 21:13:09 +02:00
holger krekel 0d0a7b7fec strike unused (buggy) keyword param
--HG--
branch : trunk
2010-04-27 17:53:07 +02:00
holger krekel ed7a2d2da3 refine/fix isimportable-logic and ensure that 'tmpdir' has a python-importable name
--HG--
branch : trunk
2010-04-27 16:10:25 +02:00
holger krekel 8131f5bdc0 (fixes issue83) don't try to import conftest from an invalid package path, refine path.pyimport() logic
--HG--
branch : trunk
2010-04-27 15:49:13 +02:00
holger krekel c8d78177b9 (fixes issue85) correctly write non-ascii test output to junitxml files, refine some internal methods for it
--HG--
branch : trunk
2010-04-27 15:15:43 +02:00
holger krekel f6a04b92d2 fix unicode issues (port of pypy/py repo changeset r72526 by Armin)
--HG--
branch : trunk
2010-04-27 12:23:13 +02:00
holger krekel 7084313408 factor out session main loop so that distribute testing can make use of it
--HG--
branch : trunk
2010-04-26 17:56:39 +02:00
Benjamin Peterson 1771cb0af8 fetch code object compatibly
--HG--
branch : trunk
2010-04-23 20:43:49 -05:00
Benjamin Peterson d1b45ef3d4 add a helper to get a function's code
--HG--
branch : trunk
2010-04-23 20:39:40 -05:00
holger krekel 0b24a70279 this should test and fix the same issue that was committed in
the pypy svn-repo as r72534

--HG--
branch : trunk
2010-04-23 19:28:41 +02:00
holger krekel b3a05b545e another couple of checks on jython, still some problems
--HG--
branch : trunk
2010-04-23 19:05:22 +02:00
holger krekel 221ac3e466 a couple of more mostly jython-related fixes
--HG--
branch : trunk
2010-04-23 13:29:28 +02:00
holger krekel ff90b1b4fb fix version numbers
--HG--
branch : trunk
2010-04-22 16:51:42 +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 cbb4c0dadc use taskkill cmdline for jython/win32 but skip test on jython because it does not return a subprocess PID
--HG--
branch : trunk
2010-04-21 06:23:19 -07:00
holger krekel fe34a8a15a a couple of more fixes/refinements for getting py.test to run better on jython/win32
--HG--
branch : trunk
2010-04-21 03:50:03 -07:00
holger krekel 5715bbd6f5 refining the win32 checks some further
--HG--
branch : trunk
2010-04-20 20:08:52 +02:00
holger krekel 10f6c3a432 fix check to work when there is no jython
--HG--
branch : trunk
2010-04-20 10:48:49 -07: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 75a6bf2395 fix issue78 - strike superflous "import sys" that cause unbound
local var errors.

--HG--
branch : trunk
2010-04-14 13:30:12 +02:00
Benjamin Peterson fe95ad0aa6 fix typo
--HG--
branch : trunk
2010-03-03 15:54:39 -06: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 13488dd540 if a funcarg is misspelled/missing, hint at using "--funcargs"
--HG--
branch : trunk
2010-02-07 02:15:47 +01:00
holger krekel ac1eed545c nice-ify --funcarg reporting, show paths instead of useless python reprs
--HG--
branch : trunk
2010-02-07 02:09:14 +01:00
holger krekel e09e7148a3 fix docstring
--HG--
branch : trunk
2010-02-07 01:56:43 +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 9d64d7e27a refine setup ordering some more - test and avoid a problem with funcarg setups where the
surrounding setup_module would fail, but the funcarg setup still be called (which might
assume that setup_module has been called so would raise a confusing error)

--HG--
branch : trunk
2010-01-28 15:36:27 +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 d3c0ff3a1f make sure we get an absolute path when writing the genscript file
--HG--
branch : trunk
2010-01-18 16:48:20 +01:00
holger krekel 55fcc5a219 always directly use basename for tracebacks, independently from code.path
fixes issue77 although i guess it was already fixed before.

--HG--
branch : trunk
2010-01-18 12:12:18 +01:00
holger krekel 866255e1f5 pushing towards 1.2.0
--HG--
branch : trunk
2010-01-18 11:19:59 +01:00
holger krekel 0149771997 refine excludepath handling to treat entries with no path as matching
--HG--
branch : trunk
2010-01-18 03:04:20 +01:00
holger krekel d483f18374 move rsync reporting out
--HG--
branch : trunk
2010-01-18 00:41:22 +01:00
holger krekel 95de17b652 refine tests and refine code to deal with new xdist semantics.
--HG--
branch : trunk
2010-01-17 23:23:02 +01:00
holger krekel 09671eb6fc rename logxml plugin to junitxml
--HG--
branch : trunk
2010-01-16 23:33:26 +01:00
holger krekel 6f0db1d193 kill unused code
--HG--
branch : trunk
2010-01-16 19:41:05 +01:00
holger krekel 76e49b57bf fix test_importall to not stop on skipped plugins and fix the uncovered failure of genscript: standalone.py template is now safely importable
--HG--
branch : trunk
2010-01-15 18:45:06 +01:00
holger krekel 4a568f43fe get rid of the funccollector node, which nice-ifies names of funcarg-generated tests nodes, also test and fix one anomaly wrt to funcarg setups and instance uniqueness
--HG--
branch : trunk
2010-01-15 17:50:02 +01:00
holger krekel ee2f292efa remove superflous building of a dict, preserve order for nodes that have identical file:lineno
--HG--
branch : trunk
2010-01-15 17:38:09 +01:00
holger krekel 9da1ba40ed move down py/impl/XYZ to py/_XYZ
--HG--
branch : trunk
2010-01-13 17:15:54 +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 d4f5073076 remove figleaf which now lives "outside"
--HG--
branch : trunk
2010-01-13 00:47:20 +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
Ronny Pfannschmidt 676081b87a remove the PickleChannel dependency for looponfail
--HG--
branch : trunk
2010-01-12 17:35:06 +01:00
holger krekel 1b0d6296dd test and fix looponfailing wrt to a bug introduced with the cmdline/session startup cleanup.
--HG--
branch : trunk
2010-01-12 16:08:48 +01:00
holger krekel 8d9e0712be refine classname normalization for junit-xml
--HG--
branch : trunk
2010-01-12 01:35:50 +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 99301a0dae (experimental) allow cmdline arguments to deep-point to a test, also remove virtually redundant session.getinitialitems() calls
--HG--
branch : trunk
2010-01-10 21:29:36 +01:00
holger krekel 3029aa6558 fix some "import py" test issues, and prevent "genscript" script from having dist-options
--HG--
branch : trunk
2010-01-10 20:45:37 +01:00
holger krekel 45c1517580 porting latest apipkg
--HG--
branch : trunk
2010-01-10 13:54:55 +01:00
holger krekel 018254a907 update issues, version numbers
--HG--
branch : trunk
2010-01-03 14:33:10 +01:00
holger krekel 27aa14c20f fix python3 issues, add missing plugin docs
--HG--
branch : trunk
2010-01-03 13:27:06 +01:00
holger krekel d541713dca re-arrange "py.test -h" command line option grouping and update some plugin docs.
--HG--
branch : trunk
2010-01-03 12:41:29 +01:00
holger krekel 0b2d9a5520 bumping version number: 1.2.0a1
--HG--
branch : trunk
2010-01-03 11:42:26 +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