regen setup.py and docs so that "python3 setup.py build" maybe works if setuptools does
--HG-- branch : trunk
This commit is contained in:
parent
c8119d89b6
commit
3c3002ccd5
|
@ -32,8 +32,8 @@ on tests that wait on reading something from stdin.
|
|||
You can influence output capturing mechanisms from the command line::
|
||||
|
||||
py.test -s # disable all capturing
|
||||
py.test --capture=sys # set StringIO() to each of sys.stdout/stderr
|
||||
py.test --capture=fd # capture stdout/stderr on Filedescriptors 1/2
|
||||
py.test --capture=sys # replace sys.stdout/stderr with in-mem files
|
||||
py.test --capture=fd # point filedescriptors 1 and 2 to temp file
|
||||
|
||||
If you set capturing values in a conftest file like this::
|
||||
|
||||
|
@ -46,7 +46,9 @@ sys-level capturing
|
|||
------------------------------------------
|
||||
|
||||
Capturing on 'sys' level means that ``sys.stdout`` and ``sys.stderr``
|
||||
will be replaced with StringIO() objects.
|
||||
will be replaced with in-memory files (``py.io.TextIO`` to be precise)
|
||||
that capture writes and decode non-unicode strings to a unicode object
|
||||
(using a default, usually, UTF-8, encoding).
|
||||
|
||||
FD-level capturing and subprocesses
|
||||
------------------------------------------
|
||||
|
@ -71,8 +73,9 @@ per-test capturing. Here is an example test function:
|
|||
.. sourcecode:: python
|
||||
|
||||
def test_myoutput(capsys):
|
||||
print "hello"
|
||||
print >>sys.stderr, "world"
|
||||
print ("hello")
|
||||
sys.stderr.write("world
|
||||
")
|
||||
out, err = capsys.readouterr()
|
||||
assert out == "hello\n"
|
||||
assert err == "world\n"
|
||||
|
|
|
@ -1,38 +1,38 @@
|
|||
.. _`helpconfig`: helpconfig.html
|
||||
.. _`terminal`: terminal.html
|
||||
.. _`pytest_recwarn.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.0.2/py/test/plugin/pytest_recwarn.py
|
||||
.. _`pytest_recwarn.py`: http://bitbucket.org/hpk42/py-trunk/raw/trunk/py/test/plugin/pytest_recwarn.py
|
||||
.. _`unittest`: unittest.html
|
||||
.. _`pytest_monkeypatch.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.0.2/py/test/plugin/pytest_monkeypatch.py
|
||||
.. _`pytest_keyword.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.0.2/py/test/plugin/pytest_keyword.py
|
||||
.. _`pytest_monkeypatch.py`: http://bitbucket.org/hpk42/py-trunk/raw/trunk/py/test/plugin/pytest_monkeypatch.py
|
||||
.. _`pytest_keyword.py`: http://bitbucket.org/hpk42/py-trunk/raw/trunk/py/test/plugin/pytest_keyword.py
|
||||
.. _`pastebin`: pastebin.html
|
||||
.. _`plugins`: index.html
|
||||
.. _`pytest_capture.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.0.2/py/test/plugin/pytest_capture.py
|
||||
.. _`pytest_doctest.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.0.2/py/test/plugin/pytest_doctest.py
|
||||
.. _`pytest_capture.py`: http://bitbucket.org/hpk42/py-trunk/raw/trunk/py/test/plugin/pytest_capture.py
|
||||
.. _`pytest_doctest.py`: http://bitbucket.org/hpk42/py-trunk/raw/trunk/py/test/plugin/pytest_doctest.py
|
||||
.. _`capture`: capture.html
|
||||
.. _`pytest_nose.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.0.2/py/test/plugin/pytest_nose.py
|
||||
.. _`pytest_restdoc.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.0.2/py/test/plugin/pytest_restdoc.py
|
||||
.. _`pytest_nose.py`: http://bitbucket.org/hpk42/py-trunk/raw/trunk/py/test/plugin/pytest_nose.py
|
||||
.. _`pytest_restdoc.py`: http://bitbucket.org/hpk42/py-trunk/raw/trunk/py/test/plugin/pytest_restdoc.py
|
||||
.. _`xfail`: xfail.html
|
||||
.. _`pytest_pastebin.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.0.2/py/test/plugin/pytest_pastebin.py
|
||||
.. _`pytest_figleaf.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.0.2/py/test/plugin/pytest_figleaf.py
|
||||
.. _`pytest_hooklog.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.0.2/py/test/plugin/pytest_hooklog.py
|
||||
.. _`pytest_pastebin.py`: http://bitbucket.org/hpk42/py-trunk/raw/trunk/py/test/plugin/pytest_pastebin.py
|
||||
.. _`pytest_figleaf.py`: http://bitbucket.org/hpk42/py-trunk/raw/trunk/py/test/plugin/pytest_figleaf.py
|
||||
.. _`pytest_hooklog.py`: http://bitbucket.org/hpk42/py-trunk/raw/trunk/py/test/plugin/pytest_hooklog.py
|
||||
.. _`checkout the py.test development version`: ../../download.html#checkout
|
||||
.. _`pytest_helpconfig.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.0.2/py/test/plugin/pytest_helpconfig.py
|
||||
.. _`pytest_helpconfig.py`: http://bitbucket.org/hpk42/py-trunk/raw/trunk/py/test/plugin/pytest_helpconfig.py
|
||||
.. _`oejskit`: oejskit.html
|
||||
.. _`doctest`: doctest.html
|
||||
.. _`get in contact`: ../../contact.html
|
||||
.. _`pytest_xfail.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.0.2/py/test/plugin/pytest_xfail.py
|
||||
.. _`pytest_xfail.py`: http://bitbucket.org/hpk42/py-trunk/raw/trunk/py/test/plugin/pytest_xfail.py
|
||||
.. _`figleaf`: figleaf.html
|
||||
.. _`customize`: ../customize.html
|
||||
.. _`hooklog`: hooklog.html
|
||||
.. _`pytest_terminal.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.0.2/py/test/plugin/pytest_terminal.py
|
||||
.. _`pytest_terminal.py`: http://bitbucket.org/hpk42/py-trunk/raw/trunk/py/test/plugin/pytest_terminal.py
|
||||
.. _`recwarn`: recwarn.html
|
||||
.. _`pytest_pdb.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.0.2/py/test/plugin/pytest_pdb.py
|
||||
.. _`pytest_pdb.py`: http://bitbucket.org/hpk42/py-trunk/raw/trunk/py/test/plugin/pytest_pdb.py
|
||||
.. _`monkeypatch`: monkeypatch.html
|
||||
.. _`resultlog`: resultlog.html
|
||||
.. _`keyword`: keyword.html
|
||||
.. _`restdoc`: restdoc.html
|
||||
.. _`django`: django.html
|
||||
.. _`pytest_unittest.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.0.2/py/test/plugin/pytest_unittest.py
|
||||
.. _`pytest_unittest.py`: http://bitbucket.org/hpk42/py-trunk/raw/trunk/py/test/plugin/pytest_unittest.py
|
||||
.. _`nose`: nose.html
|
||||
.. _`pytest_resultlog.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.0.2/py/test/plugin/pytest_resultlog.py
|
||||
.. _`pytest_resultlog.py`: http://bitbucket.org/hpk42/py-trunk/raw/trunk/py/test/plugin/pytest_resultlog.py
|
||||
.. _`pdb`: pdb.html
|
||||
|
|
|
@ -10,8 +10,8 @@ safely patch object attributes, dicts and environment variables.
|
|||
Usage
|
||||
----------------
|
||||
|
||||
Use the `monkeypatch funcarg`_ to safely patch environment
|
||||
variables, object attributes or dictionaries. For example, if you want
|
||||
Use the `monkeypatch funcarg`_ to safely modify or delete environment
|
||||
variables, object attributes or dictionary values. For example, if you want
|
||||
to set the environment variable ``ENV1`` and patch the
|
||||
``os.path.abspath`` function to return a particular value during a test
|
||||
function execution you can write it down like this:
|
||||
|
@ -37,6 +37,20 @@ can use this example:
|
|||
monkeypatch.setenv('PATH', 'x/y', prepend=":")
|
||||
# x/y will be at the beginning of $PATH
|
||||
|
||||
calling "undo" finalization explicitely
|
||||
-----------------------------------------
|
||||
|
||||
Usually at the end of function execution py.test will invoke
|
||||
a teardown hook which undoes the changes. If you cannot wait
|
||||
that long you can also call finalization explicitely::
|
||||
|
||||
monkeypatch.undo()
|
||||
|
||||
This will undo previous changes. This call consumes the
|
||||
undo stack. Calling it a second time has no effect.
|
||||
Within a test you can continue to use the monkeypatch
|
||||
object, however.
|
||||
|
||||
.. _`monkeypatch blog post`: http://tetamap.wordpress.com/2009/03/03/monkeypatching-in-unit-tests-done-right/
|
||||
|
||||
.. _`monkeypatch funcarg`:
|
||||
|
@ -45,15 +59,22 @@ can use this example:
|
|||
the 'monkeypatch' test function argument
|
||||
----------------------------------------
|
||||
|
||||
The returned ``monkeypatch`` funcarg provides three
|
||||
The returned ``monkeypatch`` funcarg provides these
|
||||
helper methods to modify objects, dictionaries or os.environ::
|
||||
|
||||
monkeypatch.setattr(obj, name, value)
|
||||
monkeypatch.delattr(obj, name, raising=True)
|
||||
monkeypatch.setitem(mapping, name, value)
|
||||
monkeypatch.setenv(name, value)
|
||||
monkeypatch.delitem(obj, name, raising=True)
|
||||
monkeypatch.setenv(name, value, prepend=False)
|
||||
monkeypatch.delenv(name, value, raising=True)
|
||||
monkeypatch.syspath_prepend(path)
|
||||
|
||||
All such modifications will be undone when the requesting
|
||||
test function finished its execution.
|
||||
All modifications will be undone when the requesting
|
||||
test function finished its execution. For the ``del``
|
||||
methods the ``raising`` parameter determines if a
|
||||
KeyError or AttributeError will be raised if the
|
||||
deletion has no target.
|
||||
|
||||
Start improving this plugin in 30 seconds
|
||||
=========================================
|
||||
|
|
44
setup.py
44
setup.py
|
@ -23,6 +23,7 @@ For questions please check out http://pylib.org/contact.html
|
|||
.. _`py.path`: http://pylib.org/path.html
|
||||
.. _`py.code`: http://pylib.org/code.html
|
||||
|
||||
(c) Holger Krekel and others, 2009
|
||||
|
||||
"""
|
||||
trunk = 'trunk'
|
||||
|
@ -58,44 +59,25 @@ def main():
|
|||
'Topic :: Utilities',
|
||||
'Programming Language :: Python'],
|
||||
packages=['py',
|
||||
'py._testing',
|
||||
'py.builtin',
|
||||
'py.builtin.testing',
|
||||
'py.cmdline',
|
||||
'py.cmdline.testing',
|
||||
'py.code',
|
||||
'py.code.testing',
|
||||
'py.compat',
|
||||
'py.compat.testing',
|
||||
'py.execnet',
|
||||
'py.execnet.script',
|
||||
'py.execnet.testing',
|
||||
'py.io',
|
||||
'py.io.testing',
|
||||
'py.log',
|
||||
'py.log.testing',
|
||||
'py.path',
|
||||
'py.path.gateway',
|
||||
'py.path.testing',
|
||||
'py.process',
|
||||
'py.process.testing',
|
||||
'py.rest',
|
||||
'py.rest.testing',
|
||||
'py.test',
|
||||
'py.test.dist',
|
||||
'py.test.dist.testing',
|
||||
'py.test.looponfail',
|
||||
'py.test.looponfail.testing',
|
||||
'py.test.plugin',
|
||||
'py.test.testing',
|
||||
'py.test.testing.import_test.package',
|
||||
'py.test.web',
|
||||
'py.thread',
|
||||
'py.thread.testing',
|
||||
'py.xmlobj',
|
||||
'py.xmlobj.testing'],
|
||||
package_data={'py': ['LICENSE',
|
||||
'bin/_findpy.py',
|
||||
'py.thread'],
|
||||
package_data={'py': ['bin/_findpy.py',
|
||||
'bin/env.cmd',
|
||||
'bin/env.py',
|
||||
'bin/py.cleanup',
|
||||
|
@ -114,26 +96,10 @@ def main():
|
|||
'bin/win32/py.svnwcrevert.cmd',
|
||||
'bin/win32/py.test.cmd',
|
||||
'bin/win32/py.which.cmd',
|
||||
'compat/LICENSE',
|
||||
'compat/testing/test_doctest.txt',
|
||||
'compat/testing/test_doctest2.txt',
|
||||
'execnet/NOTES',
|
||||
'execnet/improve-remote-tracebacks.txt',
|
||||
'path/gateway/TODO.txt',
|
||||
'path/notes-svn-quoting.txt',
|
||||
'path/testing/repotest.dump',
|
||||
'rest/rest.sty.template',
|
||||
'rest/testing/data/example.rst2pdfconfig',
|
||||
'rest/testing/data/example1.dot',
|
||||
'rest/testing/data/formula.txt',
|
||||
'rest/testing/data/formula1.txt',
|
||||
'rest/testing/data/graphviz.txt',
|
||||
'rest/testing/data/part1.txt',
|
||||
'rest/testing/data/part2.txt',
|
||||
'rest/testing/data/tocdepth.rst2pdfconfig']},
|
||||
'rest/rest.sty.template']},
|
||||
zip_safe=False,
|
||||
)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
|
Loading…
Reference in New Issue