Commits

holger krekel committed c547971

prepare a 2.3.1

  • Participants
  • Parent commits 96990f0

Comments (0)

Files changed (20)

File _pytest/__init__.py

 #
-__version__ = '2.3.1.dev2'
+__version__ = '2.3.1'

File _pytest/skipping.py

 
 def pytest_configure(config):
     config.addinivalue_line("markers",
-        "skipif(*conditions): skip the given test function if evaluation "
-        "of all conditions has a True value.  Evaluation happens within the "
+        "skipif(condition): skip the given test function if eval(condition) "
+        "results in a True value.  Evaluation happens within the "
         "module global context. Example: skipif('sys.platform == \"win32\"') "
         "skips the test if we are on the win32 platform. see "
         "http://pytest.org/latest/skipping.html"
     )
     config.addinivalue_line("markers",
-        "xfail(*conditions, reason=None, run=True): mark the the test function "
-        "as an expected failure. Optionally specify a reason and run=False "
-        "if you don't even want to execute the test function. Any positional "
-        "condition strings will be evaluated (like with skipif) and if one is "
-        "False the marker will not be applied."
-        "see http://pytest.org/latest/skipping.html"
+        "xfail(condition, reason=None, run=True): mark the the test function "
+        "as an expected failure if eval(condition) has a True value. "
+        "Optionally specify a reason for better reporting and run=False if "
+        "you don't even want to execute the test function. See "
+        "http://pytest.org/latest/skipping.html"
     )
 
 def pytest_namespace():

File doc/en/assert.txt

 
     $ py.test test_assert1.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 1 items
     
     test_assert1.py F
 
     $ py.test test_assert2.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 1 items
     
     test_assert2.py F

File doc/en/capture.txt

 
     $ py.test
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 2 items
     
     test_module.py .F
     
     test_module.py:9: AssertionError
     ----------------------------- Captured stdout ------------------------------
-    setting up <function test_func2 at 0x2ff0050>
+    setting up <function test_func2 at 0x240e050>
     ==================== 1 failed, 1 passed in 0.01 seconds ====================
 
 Accessing captured output from a test function

File doc/en/conf.py

 #
 # The full version, including alpha/beta/rc tags.
 # The short X.Y version.
-version = release = "2.3.0.1"
+version = release = "2.3.1"
 
 import sys, os
 

File doc/en/doctest.txt

 
     $ py.test
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 1 items
     
     mymodule.py .

File doc/en/example/attic_remoteinterpreter.txt

-
-.. highlightlang:: python
-
-.. _myapp:
-
-Building an SSH connecting Application fixture
-==========================================================
-
-The goal of this tutorial-example is to show how you can put efficient
-test support and fixture code in one place, allowing test modules and 
-test functions to stay ignorant of importing, configuration or 
-setup/teardown details.
-
-The tutorial implements a simple ``RemoteInterpreter`` object that 
-allows evaluation of python expressions.  We are going to use
-the `execnet <http://codespeak.net/execnet>`_ package for the 
-underlying cross-python bridge functionality.
-
-
-Step 1: Implementing a first test
---------------------------------------------------------------
-
-Let's write a simple test function using a not yet defined ``interp`` fixture::
-
-    # content of test_remoteinterpreter.py
-    
-    def test_eval_simple(interp):
-        assert interp.eval("6*9") == 42
-    
-The test function needs an argument named `interp` and therefore pytest will
-look for a :ref:`fixture function` that matches this name.  We'll define it 
-in a :ref:`local plugin <localplugin>` to make it available also to other
-test modules::
-
-    # content of conftest.py
-   
-    from .remoteinterpreter import RemoteInterpreter
-
-    @pytest.fixture
-    def interp(request):
-        import execnet
-        gw = execnet.makegateway()
-        return RemoteInterpreter(gw)
-        
-To run the example we furthermore need to implement a RemoteInterpreter 
-object which working with the injected execnet-gateway connection::
-
-    # content of remoteintepreter.py
-    
-    class RemoteInterpreter:
-        def __init__(self, gateway):
-            self.gateway = gateway
-
-        def eval(self, expression):
-            # execnet open a "gateway" to the remote process 
-            # which enables to remotely execute code and communicate
-            # to and fro via channels
-            ch = self.gateway.remote_exec("channel.send(%s)" % expression)
-            return ch.receive()
-
-That's it, we can now run the test::
-
-    $ py.test test_remoteinterpreter.py
-    Traceback (most recent call last):
-      File "/home/hpk/p/pytest/.tox/regen/bin/py.test", line 9, in <module>
-        load_entry_point('pytest==2.3.0', 'console_scripts', 'py.test')()
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/core.py", line 473, in main
-        config = _prepareconfig(args, plugins)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/core.py", line 463, in _prepareconfig
-        pluginmanager=_pluginmanager, args=args)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/core.py", line 422, in __call__
-        return self._docall(methods, kwargs)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/core.py", line 433, in _docall
-        res = mc.execute()
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/core.py", line 351, in execute
-        res = method(**kwargs)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/helpconfig.py", line 25, in pytest_cmdline_parse
-        config = __multicall__.execute()
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/core.py", line 351, in execute
-        res = method(**kwargs)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 10, in pytest_cmdline_parse
-        config.parse(args)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 344, in parse
-        self._preparse(args)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 322, in _preparse
-        self._setinitialconftest(args)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 301, in _setinitialconftest
-        self._conftest.setinitial(args)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 160, in setinitial
-        self._try_load_conftest(anchor)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 166, in _try_load_conftest
-        self._path2confmods[None] = self.getconftestmodules(anchor)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 190, in getconftestmodules
-        clist[:0] = self.getconftestmodules(dp)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 189, in getconftestmodules
-        clist.append(self.importconftest(conftestpath))
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 218, in importconftest
-        self._conftestpath2mod[conftestpath] = mod = conftestpath.pyimport()
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/py/_path/local.py", line 532, in pyimport
-        __import__(modname)
-      File "/tmp/doc-exec-408/conftest.py", line 2, in <module>
-        from .remoteinterpreter import RemoteInterpreter
-    ValueError: Attempted relative import in non-package
-
-.. _`tut-cmdlineoption`:
-
-Step 2: Adding command line configuration
------------------------------------------------------------
-
-To add a command line option we update the ``conftest.py`` of
-the previous example and add a command line option which
-is passed on to the MyApp object::
-
-    # content of ./conftest.py
-    import pytest
-    from myapp import MyApp
-
-    def pytest_addoption(parser):  # pytest hook called during initialisation
-        parser.addoption("--ssh", action="store", default=None,
-            help="specify ssh host to run tests with")
-
-    @pytest.fixture
-    def mysetup(request): # "mysetup" factory function
-        return MySetup(request.config)
-
-    class MySetup:
-        def __init__(self, config):
-            self.config = config
-            self.app = MyApp()
-
-        def getsshconnection(self):
-            import execnet
-            host = self.config.option.ssh
-            if host is None:
-                pytest.skip("specify ssh host with --ssh")
-            return execnet.SshGateway(host)
-
-
-Now any test function can use the ``mysetup.getsshconnection()`` method
-like this::
-
-    # content of test_ssh.py
-    class TestClass:
-        def test_function(self, mysetup):
-            conn = mysetup.getsshconnection()
-            # work with conn
-
-Running it yields::
-
-    $ py.test -q test_ssh.py -rs
-    Traceback (most recent call last):
-      File "/home/hpk/p/pytest/.tox/regen/bin/py.test", line 9, in <module>
-        load_entry_point('pytest==2.3.0', 'console_scripts', 'py.test')()
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/core.py", line 473, in main
-        config = _prepareconfig(args, plugins)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/core.py", line 463, in _prepareconfig
-        pluginmanager=_pluginmanager, args=args)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/core.py", line 422, in __call__
-        return self._docall(methods, kwargs)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/core.py", line 433, in _docall
-        res = mc.execute()
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/core.py", line 351, in execute
-        res = method(**kwargs)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/helpconfig.py", line 25, in pytest_cmdline_parse
-        config = __multicall__.execute()
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/core.py", line 351, in execute
-        res = method(**kwargs)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 10, in pytest_cmdline_parse
-        config.parse(args)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 344, in parse
-        self._preparse(args)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 322, in _preparse
-        self._setinitialconftest(args)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 301, in _setinitialconftest
-        self._conftest.setinitial(args)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 160, in setinitial
-        self._try_load_conftest(anchor)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 166, in _try_load_conftest
-        self._path2confmods[None] = self.getconftestmodules(anchor)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 190, in getconftestmodules
-        clist[:0] = self.getconftestmodules(dp)
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 189, in getconftestmodules
-        clist.append(self.importconftest(conftestpath))
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/config.py", line 218, in importconftest
-        self._conftestpath2mod[conftestpath] = mod = conftestpath.pyimport()
-      File "/home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/py/_path/local.py", line 532, in pyimport
-        __import__(modname)
-      File "/tmp/doc-exec-408/conftest.py", line 2, in <module>
-        from myapp import MyApp
-    ImportError: No module named myapp
-
-If you specify a command line option like ``py.test --ssh=python.org`` the test will execute as expected.
-
-Note that neither the ``TestClass`` nor the ``test_function`` need to
-know anything about how to setup the test state.  It is handled separately
-in the ``conftest.py`` file.  It is easy
-to extend the ``mysetup`` object for further needs in the test code - and for use by any other test functions in the files and directories below the ``conftest.py`` file.
-

File doc/en/example/markers.txt

 
     $ py.test -v -m webtest
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0 -- /home/hpk/p/pytest/.tox/regen/bin/python
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1 -- /home/hpk/p/pytest/.tox/regen/bin/python
     collecting ... collected 2 items
     
     test_server.py:3: test_send_http PASSED
     
     =================== 1 tests deselected by "-m 'webtest'" ===================
-    ================== 1 passed, 1 deselected in 0.01 seconds ==================
+    ================== 1 passed, 1 deselected in 0.00 seconds ==================
 
 Or the inverse, running all tests except the webtest ones::
     
     $ py.test -v -m "not webtest"
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0 -- /home/hpk/p/pytest/.tox/regen/bin/python
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1 -- /home/hpk/p/pytest/.tox/regen/bin/python
     collecting ... collected 2 items
     
     test_server.py:6: test_something_quick PASSED
     $ py.test --markers
     @pytest.mark.webtest: mark a test as a webtest.
     
-    @pytest.mark.skipif(*conditions): skip the given test function if evaluation of all conditions has a True value.  Evaluation happens within the module global context. Example: skipif('sys.platform == "win32"') skips the test if we are on the win32 platform. 
+    @pytest.mark.skipif(condition): skip the given test function if eval(condition) results in a True value.  Evaluation happens within the module global context. Example: skipif('sys.platform == "win32"') skips the test if we are on the win32 platform. see http://pytest.org/latest/skipping.html
     
-    @pytest.mark.xfail(*conditions, reason=None, run=True): mark the the test function as an expected failure. Optionally specify a reason and run=False if you don't even want to execute the test function. Any positional condition strings will be evaluated (like with skipif) and if one is False the marker will not be applied.
+    @pytest.mark.xfail(condition, reason=None, run=True): mark the the test function as an expected failure if eval(condition) has a True value. Optionally specify a reason for better reporting and run=False if you don't even want to execute the test function. See http://pytest.org/latest/skipping.html
     
-    @pytest.mark.parametrize(argnames, argvalues): call a test function multiple times passing in multiple different argument value sets. Example: @parametrize('arg1', [1,2]) would lead to two calls of the decorated test function, one with arg1=1 and another with arg1=2.
+    @pytest.mark.parametrize(argnames, argvalues): call a test function multiple times passing in multiple different argument value sets. Example: @parametrize('arg1', [1,2]) would lead to two calls of the decorated test function, one with arg1=1 and another with arg1=2. see http://pytest.org/latest/parametrize.html for more info and examples.
     
-    @pytest.mark.usefixtures(fixturename1, fixturename2, ...): mark tests as needing all of the specified fixtures.
+    @pytest.mark.usefixtures(fixturename1, fixturename2, ...): mark tests as needing all of the specified fixtures. see http://pytest.org/latest/fixture.html#usefixtures 
     
     @pytest.mark.tryfirst: mark a hook implementation function such that the plugin machinery will try to call it first/as early as possible.
     
 
     $ py.test -k send_http  # running with the above defined examples
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 4 items
     
     test_server.py .
 
     $ py.test -k-send_http
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 4 items
     
     test_mark_classlevel.py ..
 
     $ py.test -kTestClass
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 4 items
     
     test_mark_classlevel.py ..
 
     $ py.test -E stage2
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 1 items
     
     test_someenv.py s
 
     $ py.test -E stage1
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 1 items
     
     test_someenv.py .
     $ py.test --markers
     @pytest.mark.env(name): mark test to run only on named environment
     
-    @pytest.mark.skipif(*conditions): skip the given test function if evaluation of all conditions has a True value.  Evaluation happens within the module global context. Example: skipif('sys.platform == "win32"') skips the test if we are on the win32 platform. 
+    @pytest.mark.skipif(condition): skip the given test function if eval(condition) results in a True value.  Evaluation happens within the module global context. Example: skipif('sys.platform == "win32"') skips the test if we are on the win32 platform. see http://pytest.org/latest/skipping.html
     
-    @pytest.mark.xfail(*conditions, reason=None, run=True): mark the the test function as an expected failure. Optionally specify a reason and run=False if you don't even want to execute the test function. Any positional condition strings will be evaluated (like with skipif) and if one is False the marker will not be applied.
+    @pytest.mark.xfail(condition, reason=None, run=True): mark the the test function as an expected failure if eval(condition) has a True value. Optionally specify a reason for better reporting and run=False if you don't even want to execute the test function. See http://pytest.org/latest/skipping.html
     
-    @pytest.mark.parametrize(argnames, argvalues): call a test function multiple times passing in multiple different argument value sets. Example: @parametrize('arg1', [1,2]) would lead to two calls of the decorated test function, one with arg1=1 and another with arg1=2.
+    @pytest.mark.parametrize(argnames, argvalues): call a test function multiple times passing in multiple different argument value sets. Example: @parametrize('arg1', [1,2]) would lead to two calls of the decorated test function, one with arg1=1 and another with arg1=2. see http://pytest.org/latest/parametrize.html for more info and examples.
     
-    @pytest.mark.usefixtures(fixturename1, fixturename2, ...): mark tests as needing all of the specified fixtures.
+    @pytest.mark.usefixtures(fixturename1, fixturename2, ...): mark tests as needing all of the specified fixtures. see http://pytest.org/latest/fixture.html#usefixtures 
     
     @pytest.mark.tryfirst: mark a hook implementation function such that the plugin machinery will try to call it first/as early as possible.
     
 
     $ py.test -rs # this option reports skip reasons
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 4 items
     
     test_plat.py s.s.
     ========================= short test summary info ==========================
-    SKIP [2] /tmp/doc-exec-410/conftest.py:12: cannot run on platform linux2
+    SKIP [2] /tmp/doc-exec-592/conftest.py:12: cannot run on platform linux2
     
     =================== 2 passed, 2 skipped in 0.01 seconds ====================
 
 
     $ py.test -m linux2
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 4 items
     
     test_plat.py .

File doc/en/example/nonpython.txt

 
     nonpython $ py.test test_simple.yml
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 2 items
     
     test_simple.yml .F
 
     nonpython $ py.test -v
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0 -- /home/hpk/p/pytest/.tox/regen/bin/python
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1 -- /home/hpk/p/pytest/.tox/regen/bin/python
     collecting ... collected 2 items
     
     test_simple.yml:1: usecase: ok PASSED
 
     nonpython $ py.test --collectonly
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 2 items
     <YamlFile 'test_simple.yml'>
       <YamlItem 'ok'>
       <YamlItem 'hello'>
     
-    =============================  in 0.03 seconds =============================
+    =============================  in 0.02 seconds =============================

File doc/en/example/parametrize.txt

 
     $ py.test test_scenarios.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 4 items
     
     test_scenarios.py ....
 
     $ py.test --collectonly test_scenarios.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 4 items
     <Module 'test_scenarios.py'>
       <Class 'TestSampleWithScenarios'>
 
     $ py.test test_backends.py --collectonly
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 2 items
     <Module 'test_backends.py'>
       <Function 'test_db_initialized[d1]'>
     ================================= FAILURES =================================
     _________________________ test_db_initialized[d2] __________________________
     
-    db = <conftest.DB2 instance at 0x2ae5878>
+    db = <conftest.DB2 instance at 0x233e8c0>
     
         def test_db_initialized(db):
             # a dummy test
     ================================= FAILURES =================================
     ________________________ TestClass.test_equals[1-2] ________________________
     
-    self = <test_parametrize.TestClass instance at 0x1de24d0>, a = 1, b = 2
+    self = <test_parametrize.TestClass instance at 0x2a73518>, a = 1, b = 2
     
         def test_equals(self, a, b):
     >       assert a == b

File doc/en/example/pythoncollection.txt

 
     $ py.test --collectonly
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 2 items
     <Module 'check_myapp.py'>
       <Class 'CheckMyApp'>
           <Function 'check_simple'>
           <Function 'check_complex'>
     
-    =============================  in 0.01 seconds =============================
+    =============================  in 0.00 seconds =============================
 
 Interpreting cmdline arguments as Python packages
 -----------------------------------------------------
 
     . $ py.test --collectonly pythoncollection.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 3 items
     <Module 'pythoncollection.py'>
       <Function 'test_function'>
     
     $ py.test --collectonly
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 1 items
     <Module 'pkg/module_py2.py'>
       <Function 'test_only_on_python2'>

File doc/en/example/reportingdemo.txt

 
     assertion $ py.test failure_demo.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 39 items
     
     failure_demo.py FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     failure_demo.py:15: AssertionError
     _________________________ TestFailing.test_simple __________________________
     
-    self = <failure_demo.TestFailing object at 0x23f57d0>
+    self = <failure_demo.TestFailing object at 0x27ee810>
     
         def test_simple(self):
             def f():
         
     >       assert f() == g()
     E       assert 42 == 43
-    E        +  where 42 = <function f at 0x239d488>()
-    E        +  and   43 = <function g at 0x239d500>()
+    E        +  where 42 = <function f at 0x2786488>()
+    E        +  and   43 = <function g at 0x2786500>()
     
     failure_demo.py:28: AssertionError
     ____________________ TestFailing.test_simple_multiline _____________________
     
-    self = <failure_demo.TestFailing object at 0x23f5850>
+    self = <failure_demo.TestFailing object at 0x27ee890>
     
         def test_simple_multiline(self):
             otherfunc_multi(
     failure_demo.py:11: AssertionError
     ___________________________ TestFailing.test_not ___________________________
     
-    self = <failure_demo.TestFailing object at 0x23f5a90>
+    self = <failure_demo.TestFailing object at 0x27eea50>
     
         def test_not(self):
             def f():
                 return 42
     >       assert not f()
     E       assert not 42
-    E        +  where 42 = <function f at 0x239d7d0>()
+    E        +  where 42 = <function f at 0x27867d0>()
     
     failure_demo.py:38: AssertionError
     _________________ TestSpecialisedExplanations.test_eq_text _________________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x23f5b90>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x27ee9d0>
     
         def test_eq_text(self):
     >       assert 'spam' == 'eggs'
     failure_demo.py:42: AssertionError
     _____________ TestSpecialisedExplanations.test_eq_similar_text _____________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x239f190>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x27961d0>
     
         def test_eq_similar_text(self):
     >       assert 'foo 1 bar' == 'foo 2 bar'
     failure_demo.py:45: AssertionError
     ____________ TestSpecialisedExplanations.test_eq_multiline_text ____________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x239f210>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x2796250>
     
         def test_eq_multiline_text(self):
     >       assert 'foo\nspam\nbar' == 'foo\neggs\nbar'
     failure_demo.py:48: AssertionError
     ______________ TestSpecialisedExplanations.test_eq_long_text _______________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x239f090>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x2796090>
     
         def test_eq_long_text(self):
             a = '1'*100 + 'a' + '2'*100
     failure_demo.py:53: AssertionError
     _________ TestSpecialisedExplanations.test_eq_long_text_multiline __________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x2395f10>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x278cf50>
     
         def test_eq_long_text_multiline(self):
             a = '1\n'*100 + 'a' + '2\n'*100
     failure_demo.py:58: AssertionError
     _________________ TestSpecialisedExplanations.test_eq_list _________________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x2395210>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x278c250>
     
         def test_eq_list(self):
     >       assert [0, 1, 2] == [0, 1, 3]
     failure_demo.py:61: AssertionError
     ______________ TestSpecialisedExplanations.test_eq_list_long _______________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x2395490>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x278c4d0>
     
         def test_eq_list_long(self):
             a = [0]*100 + [1] + [3]*100
     failure_demo.py:66: AssertionError
     _________________ TestSpecialisedExplanations.test_eq_dict _________________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x2395bd0>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x278cbd0>
     
         def test_eq_dict(self):
     >       assert {'a': 0, 'b': 1} == {'a': 0, 'b': 2}
     failure_demo.py:69: AssertionError
     _________________ TestSpecialisedExplanations.test_eq_set __________________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x2395710>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x278c750>
     
         def test_eq_set(self):
     >       assert set([0, 10, 11, 12]) == set([0, 20, 21])
     failure_demo.py:72: AssertionError
     _____________ TestSpecialisedExplanations.test_eq_longer_list ______________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x2395590>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x278c5d0>
     
         def test_eq_longer_list(self):
     >       assert [1,2] == [1,2,3]
     failure_demo.py:75: AssertionError
     _________________ TestSpecialisedExplanations.test_in_list _________________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x2391050>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x27880d0>
     
         def test_in_list(self):
     >       assert 1 in [0, 2, 3, 4, 5]
     failure_demo.py:78: AssertionError
     __________ TestSpecialisedExplanations.test_not_in_text_multiline __________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x23919d0>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x2788ed0>
     
         def test_not_in_text_multiline(self):
             text = 'some multiline\ntext\nwhich\nincludes foo\nand a\ntail'
     failure_demo.py:82: AssertionError
     ___________ TestSpecialisedExplanations.test_not_in_text_single ____________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x2391f50>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x2788fd0>
     
         def test_not_in_text_single(self):
             text = 'single foo line'
     failure_demo.py:86: AssertionError
     _________ TestSpecialisedExplanations.test_not_in_text_single_long _________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x2391810>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x2788850>
     
         def test_not_in_text_single_long(self):
             text = 'head ' * 50 + 'foo ' + 'tail ' * 20
     failure_demo.py:90: AssertionError
     ______ TestSpecialisedExplanations.test_not_in_text_single_long_term _______
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x2391250>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x27882d0>
     
         def test_not_in_text_single_long_term(self):
             text = 'head ' * 50 + 'f'*70 + 'tail ' * 20
             i = Foo()
     >       assert i.b == 2
     E       assert 1 == 2
-    E        +  where 1 = <failure_demo.Foo object at 0x23918d0>.b
+    E        +  where 1 = <failure_demo.Foo object at 0x2788910>.b
     
     failure_demo.py:101: AssertionError
     _________________________ test_attribute_instance __________________________
                 b = 1
     >       assert Foo().b == 2
     E       assert 1 == 2
-    E        +  where 1 = <failure_demo.Foo object at 0x2391ed0>.b
-    E        +    where <failure_demo.Foo object at 0x2391ed0> = <class 'failure_demo.Foo'>()
+    E        +  where 1 = <failure_demo.Foo object at 0x2788f50>.b
+    E        +    where <failure_demo.Foo object at 0x2788f50> = <class 'failure_demo.Foo'>()
     
     failure_demo.py:107: AssertionError
     __________________________ test_attribute_failure __________________________
     failure_demo.py:116: 
     _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
     
-    self = <failure_demo.Foo object at 0x255e890>
+    self = <failure_demo.Foo object at 0x29558d0>
     
         def _get_b(self):
     >       raise Exception('Failed to get attrib')
                 b = 2
     >       assert Foo().b == Bar().b
     E       assert 1 == 2
-    E        +  where 1 = <failure_demo.Foo object at 0x2391650>.b
-    E        +    where <failure_demo.Foo object at 0x2391650> = <class 'failure_demo.Foo'>()
-    E        +  and   2 = <failure_demo.Bar object at 0x2391cd0>.b
-    E        +    where <failure_demo.Bar object at 0x2391cd0> = <class 'failure_demo.Bar'>()
+    E        +  where 1 = <failure_demo.Foo object at 0x2788690>.b
+    E        +    where <failure_demo.Foo object at 0x2788690> = <class 'failure_demo.Foo'>()
+    E        +  and   2 = <failure_demo.Bar object at 0x2788d10>.b
+    E        +    where <failure_demo.Bar object at 0x2788d10> = <class 'failure_demo.Bar'>()
     
     failure_demo.py:124: AssertionError
     __________________________ TestRaises.test_raises __________________________
     
-    self = <failure_demo.TestRaises instance at 0x2406c68>
+    self = <failure_demo.TestRaises instance at 0x28000e0>
     
         def test_raises(self):
             s = 'qwe'
     >   int(s)
     E   ValueError: invalid literal for int() with base 10: 'qwe'
     
-    <0-codegen /home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/python.py:838>:1: ValueError
+    <0-codegen /home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/python.py:850>:1: ValueError
     ______________________ TestRaises.test_raises_doesnt _______________________
     
-    self = <failure_demo.TestRaises instance at 0x240f3b0>
+    self = <failure_demo.TestRaises instance at 0x2806b90>
     
         def test_raises_doesnt(self):
     >       raises(IOError, "int('3')")
     failure_demo.py:136: Failed
     __________________________ TestRaises.test_raise ___________________________
     
-    self = <failure_demo.TestRaises instance at 0x24084d0>
+    self = <failure_demo.TestRaises instance at 0x27ff518>
     
         def test_raise(self):
     >       raise ValueError("demo error")
     failure_demo.py:139: ValueError
     ________________________ TestRaises.test_tupleerror ________________________
     
-    self = <failure_demo.TestRaises instance at 0x23fb248>
+    self = <failure_demo.TestRaises instance at 0x27f2290>
     
         def test_tupleerror(self):
     >       a,b = [1]
     failure_demo.py:142: ValueError
     ______ TestRaises.test_reinterpret_fails_with_print_for_the_fun_of_it ______
     
-    self = <failure_demo.TestRaises instance at 0x23fbf80>
+    self = <failure_demo.TestRaises instance at 0x27f2fc8>
     
         def test_reinterpret_fails_with_print_for_the_fun_of_it(self):
             l = [1,2,3]
     l is [1, 2, 3]
     ________________________ TestRaises.test_some_error ________________________
     
-    self = <failure_demo.TestRaises instance at 0x23fcd88>
+    self = <failure_demo.TestRaises instance at 0x27f3dd0>
     
         def test_some_error(self):
     >       if namenotexi:
     <2-codegen 'abc-123' /home/hpk/p/pytest/doc/en/example/assertion/failure_demo.py:162>:2: AssertionError
     ____________________ TestMoreErrors.test_complex_error _____________________
     
-    self = <failure_demo.TestMoreErrors instance at 0x240f758>
+    self = <failure_demo.TestMoreErrors instance at 0x28067a0>
     
         def test_complex_error(self):
             def f():
     failure_demo.py:5: AssertionError
     ___________________ TestMoreErrors.test_z1_unpack_error ____________________
     
-    self = <failure_demo.TestMoreErrors instance at 0x23f6d88>
+    self = <failure_demo.TestMoreErrors instance at 0x27eddd0>
     
         def test_z1_unpack_error(self):
             l = []
     failure_demo.py:179: ValueError
     ____________________ TestMoreErrors.test_z2_type_error _____________________
     
-    self = <failure_demo.TestMoreErrors instance at 0x23f8b90>
+    self = <failure_demo.TestMoreErrors instance at 0x27efbd8>
     
         def test_z2_type_error(self):
             l = 3
     failure_demo.py:183: TypeError
     ______________________ TestMoreErrors.test_startswith ______________________
     
-    self = <failure_demo.TestMoreErrors instance at 0x23f9998>
+    self = <failure_demo.TestMoreErrors instance at 0x27f09e0>
     
         def test_startswith(self):
             s = "123"
             g = "456"
     >       assert s.startswith(g)
-    E       assert <built-in method startswith of str object at 0x2402ad0>('456')
-    E        +  where <built-in method startswith of str object at 0x2402ad0> = '123'.startswith
+    E       assert <built-in method startswith of str object at 0x27f9ad0>('456')
+    E        +  where <built-in method startswith of str object at 0x27f9ad0> = '123'.startswith
     
     failure_demo.py:188: AssertionError
     __________________ TestMoreErrors.test_startswith_nested ___________________
     
-    self = <failure_demo.TestMoreErrors instance at 0x23f80e0>
+    self = <failure_demo.TestMoreErrors instance at 0x27ef098>
     
         def test_startswith_nested(self):
             def f():
             def g():
                 return "456"
     >       assert f().startswith(g())
-    E       assert <built-in method startswith of str object at 0x2402ad0>('456')
-    E        +  where <built-in method startswith of str object at 0x2402ad0> = '123'.startswith
-    E        +    where '123' = <function f at 0x24229b0>()
-    E        +  and   '456' = <function g at 0x24168c0>()
+    E       assert <built-in method startswith of str object at 0x27f9ad0>('456')
+    E        +  where <built-in method startswith of str object at 0x27f9ad0> = '123'.startswith
+    E        +    where '123' = <function f at 0x28169b0>()
+    E        +  and   '456' = <function g at 0x280e8c0>()
     
     failure_demo.py:195: AssertionError
     _____________________ TestMoreErrors.test_global_func ______________________
     
-    self = <failure_demo.TestMoreErrors instance at 0x24097a0>
+    self = <failure_demo.TestMoreErrors instance at 0x2800878>
     
         def test_global_func(self):
     >       assert isinstance(globf(42), float)
     failure_demo.py:198: AssertionError
     _______________________ TestMoreErrors.test_instance _______________________
     
-    self = <failure_demo.TestMoreErrors instance at 0x23fbd88>
+    self = <failure_demo.TestMoreErrors instance at 0x27f20e0>
     
         def test_instance(self):
             self.x = 6*7
     >       assert self.x != 42
     E       assert 42 != 42
-    E        +  where 42 = <failure_demo.TestMoreErrors instance at 0x23fbd88>.x
+    E        +  where 42 = <failure_demo.TestMoreErrors instance at 0x27f20e0>.x
     
     failure_demo.py:202: AssertionError
     _______________________ TestMoreErrors.test_compare ________________________
     
-    self = <failure_demo.TestMoreErrors instance at 0x23f7560>
+    self = <failure_demo.TestMoreErrors instance at 0x27ec5a8>
     
         def test_compare(self):
     >       assert globf(10) < 5
     failure_demo.py:205: AssertionError
     _____________________ TestMoreErrors.test_try_finally ______________________
     
-    self = <failure_demo.TestMoreErrors instance at 0x23f2ef0>
+    self = <failure_demo.TestMoreErrors instance at 0x27e43b0>
     
         def test_try_finally(self):
             x = 1
     E           assert 1 == 0
     
     failure_demo.py:210: AssertionError
-    ======================== 39 failed in 0.18 seconds =========================
+    ======================== 39 failed in 0.16 seconds =========================

File doc/en/example/simple.txt

 
     $ py.test
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 0 items
     
     =============================  in 0.00 seconds =============================
 
     $ py.test -rs    # "-rs" means report details on the little 's'
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 2 items
     
     test_module.py .s
     ========================= short test summary info ==========================
-    SKIP [1] /tmp/doc-exec-415/conftest.py:9: need --runslow option to run
+    SKIP [1] /tmp/doc-exec-597/conftest.py:9: need --runslow option to run
     
     =================== 1 passed, 1 skipped in 0.01 seconds ====================
 
 
     $ py.test --runslow
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 2 items
     
     test_module.py ..
 
     $ py.test
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     project deps: mylib-1.1
     collected 0 items
     
 
     $ py.test -v
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0 -- /home/hpk/p/pytest/.tox/regen/bin/python
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1 -- /home/hpk/p/pytest/.tox/regen/bin/python
     info1: did you know that ...
     did you?
     collecting ... collected 0 items
 
     $ py.test
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 0 items
     
     =============================  in 0.00 seconds =============================
 
     $ py.test --durations=3
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 3 items
     
     test_some_are_slow.py ...
     ========================= slowest 3 test durations =========================
     0.20s call     test_some_are_slow.py::test_funcslow2
     0.10s call     test_some_are_slow.py::test_funcslow1
-    0.00s call     test_some_are_slow.py::test_funcfast
+    0.00s setup    test_some_are_slow.py::test_funcfast
     ========================= 3 passed in 0.31 seconds =========================
 
 incremental testing - test steps
 
     $ py.test -rx
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 4 items
     
     test_step.py .Fx.
     ================================= FAILURES =================================
     ____________________ TestUserHandling.test_modification ____________________
     
-    self = <test_step.TestUserHandling instance at 0x1e88638>
+    self = <test_step.TestUserHandling instance at 0x1aad680>
     
         def test_modification(self):
     >       assert 0

File doc/en/fixture.txt

 
     $ py.test test_smtpsimple.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 1 items
     
     test_smtpsimple.py F
     ================================= FAILURES =================================
     ________________________________ test_ehlo _________________________________
     
-    smtp = <smtplib.SMTP instance at 0x23e1e18>
+    smtp = <smtplib.SMTP instance at 0x1ab68c0>
     
         def test_ehlo(smtp):
             response, msg = smtp.ehlo()
     E       assert 0
     
     test_smtpsimple.py:12: AssertionError
-    ========================= 1 failed in 0.25 seconds =========================
+    ========================= 1 failed in 0.12 seconds =========================
 
 In the failure traceback we see that the test function was called with a
 ``smtp`` argument, the ``smtplib.SMTP()`` instance created by the fixture
 
     $ py.test test_module.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 2 items
     
     test_module.py FF
     ================================= FAILURES =================================
     ________________________________ test_ehlo _________________________________
     
-    smtp = <smtplib.SMTP instance at 0x24bf3b0>
+    smtp = <smtplib.SMTP instance at 0x2c35488>
     
         def test_ehlo(smtp):
             response = smtp.ehlo()
     test_module.py:6: AssertionError
     ________________________________ test_noop _________________________________
     
-    smtp = <smtplib.SMTP instance at 0x24bf3b0>
+    smtp = <smtplib.SMTP instance at 0x2c35488>
     
         def test_noop(smtp):
             response = smtp.noop()
     E       assert 0
     
     test_module.py:11: AssertionError
-    ========================= 2 failed in 0.17 seconds =========================
+    ========================= 2 failed in 0.13 seconds =========================
 
 You see the two ``assert 0`` failing and more importantly you can also see 
 that the same (module-scoped) ``smtp`` object was passed into the two 
 
     $ py.test -s -q --tb=no
     FF
-    finalizing <smtplib.SMTP instance at 0x125f5a8>
+    finalizing <smtplib.SMTP instance at 0x2afd830>
 
 We see that the ``smtp`` instance is finalized after the two
 tests using it tests executed.  If we had specified ``scope='function'`` 
     ================================= FAILURES =================================
     __________________________ test_ehlo[merlinux.eu] __________________________
     
-    smtp = <smtplib.SMTP instance at 0x2fc2680>
+    smtp = <smtplib.SMTP instance at 0x1bd3710>
     
         def test_ehlo(smtp):
             response = smtp.ehlo()
     test_module.py:6: AssertionError
     __________________________ test_noop[merlinux.eu] __________________________
     
-    smtp = <smtplib.SMTP instance at 0x2fc2680>
+    smtp = <smtplib.SMTP instance at 0x1bd3710>
     
         def test_noop(smtp):
             response = smtp.noop()
     test_module.py:11: AssertionError
     ________________________ test_ehlo[mail.python.org] ________________________
     
-    smtp = <smtplib.SMTP instance at 0x2fcbfc8>
+    smtp = <smtplib.SMTP instance at 0x1c58128>
     
         def test_ehlo(smtp):
             response = smtp.ehlo()
     test_module.py:5: AssertionError
     ________________________ test_noop[mail.python.org] ________________________
     
-    smtp = <smtplib.SMTP instance at 0x2fcbfc8>
+    smtp = <smtplib.SMTP instance at 0x1c58128>
     
         def test_noop(smtp):
             response = smtp.noop()
 
     $ py.test -v test_appsetup.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0 -- /home/hpk/p/pytest/.tox/regen/bin/python
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1 -- /home/hpk/p/pytest/.tox/regen/bin/python
     collecting ... collected 2 items
     
     test_appsetup.py:12: test_smtp_exists[merlinux.eu] PASSED
     test_appsetup.py:12: test_smtp_exists[mail.python.org] PASSED
     
-    ========================= 2 passed in 0.15 seconds =========================
+    ========================= 2 passed in 0.20 seconds =========================
 
 Due to the parametrization of ``smtp`` the test will run twice with two
 different ``App`` instances and respective smtp servers.  There is no
 
     $ py.test -v -s test_module.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0 -- /home/hpk/p/pytest/.tox/regen/bin/python
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1 -- /home/hpk/p/pytest/.tox/regen/bin/python
     collecting ... collected 8 items
     
     test_module.py:16: test_0[1] PASSED

File doc/en/getting-started.txt

 To check your installation has installed the correct version::
 
     $ py.test --version
-    This is py.test version 2.3.0, imported from /home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/pytest.pyc
+    This is py.test version 2.3.1, imported from /home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/pytest.pyc
 
 If you get an error checkout :ref:`installation issues`.
 
 
     $ py.test
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 1 items
     
     test_sample.py F
     ================================= FAILURES =================================
     ____________________________ TestClass.test_two ____________________________
     
-    self = <test_class.TestClass instance at 0x1a686c8>
+    self = <test_class.TestClass instance at 0x10de710>
     
         def test_two(self):
             x = "hello"
     ================================= FAILURES =================================
     _____________________________ test_needsfiles ______________________________
     
-    tmpdir = local('/tmp/pytest-1437/test_needsfiles0')
+    tmpdir = local('/tmp/pytest-1516/test_needsfiles0')
     
         def test_needsfiles(tmpdir):
             print tmpdir
     
     test_tmpdir.py:3: AssertionError
     ----------------------------- Captured stdout ------------------------------
-    /tmp/pytest-1437/test_needsfiles0
+    /tmp/pytest-1516/test_needsfiles0
 
 Before the test runs, a unique-per-test-invocation temporary directory
 was created.  More info at :ref:`tmpdir handling`.

File doc/en/parametrize.txt

 
     $ py.test 
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 3 items
     
     test_expectation.py ..F
     
         def test_valid_string(stringinput):
     >       assert stringinput.isalpha()
-    E       assert <built-in method isalpha of str object at 0x2b2964af2030>()
-    E        +  where <built-in method isalpha of str object at 0x2b2964af2030> = '!'.isalpha
+    E       assert <built-in method isalpha of str object at 0x2b21d78ed030>()
+    E        +  where <built-in method isalpha of str object at 0x2b21d78ed030> = '!'.isalpha
     
     test_strings.py:3: AssertionError
 
     $ py.test -q -rs test_strings.py 
     s
     ========================= short test summary info ==========================
-    SKIP [1] /home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/python.py:947: got empty parameter set, function test_valid_string at /tmp/doc-exec-381/test_strings.py:1
+    SKIP [1] /home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/python.py:959: got empty parameter set, function test_valid_string at /tmp/doc-exec-564/test_strings.py:1
 
 For further examples, you might want to look at :ref:`more
 parametrization examples <paramexamples>`.

File doc/en/skipping.txt

 
     example $ py.test -rx xfail_demo.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 6 items
     
     xfail_demo.py xxxxxx

File doc/en/tmpdir.txt

 
     $ py.test test_tmpdir.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 1 items
     
     test_tmpdir.py F
     ================================= FAILURES =================================
     _____________________________ test_create_file _____________________________
     
-    tmpdir = local('/tmp/pytest-1438/test_create_file0')
+    tmpdir = local('/tmp/pytest-1517/test_create_file0')
     
         def test_create_file(tmpdir):
             p = tmpdir.mkdir("sub").join("hello.txt")

File doc/en/unittest.txt

 
     $ py.test test_unittest_db.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.3.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.3.1
     collected 2 items
     
     test_unittest_db.py FF
         def test_method1(self):
             assert hasattr(self, "db")
     >       assert 0, self.db   # fail for demo purposes
-    E       AssertionError: <conftest.DummyDB instance at 0x2ef8bd8>
+    E       AssertionError: <conftest.DummyDB instance at 0x25b1998>
     
     test_unittest_db.py:9: AssertionError
     ___________________________ MyTest.test_method2 ____________________________
     
         def test_method2(self):
     >       assert 0, self.db   # fail for demo purposes
-    E       AssertionError: <conftest.DummyDB instance at 0x2ef8bd8>
+    E       AssertionError: <conftest.DummyDB instance at 0x25b1998>
     
     test_unittest_db.py:12: AssertionError
     ========================= 2 failed in 0.02 seconds =========================
         name='pytest',
         description='py.test: simple powerful testing with Python',
         long_description = long_description,
-        version='2.3.1.dev2',
+        version='2.3.1',
         url='http://pytest.org',
         license='MIT license',
         platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'],