[Pytest-commit] commit/pytest: 6 new changesets

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Tue Dec 17 10:52:17 CET 2013


6 new commits in pytest:

https://bitbucket.org/hpk42/pytest/commits/fb3f51899ab4/
Changeset:   fb3f51899ab4
User:        hpk42
Date:        2013-12-17 07:58:49
Summary:     adding a release announcement and some doc fixes
Affected #:  7 files

diff -r eb1152c7f93ce62af0c50f35fc047216ad7b9b6e -r fb3f51899ab4c5e21687fbba0224931c929352cd CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,8 @@
-Unreleased
+2.5.1
 -----------------------------------
 
+- merge new documentation styling PR from Tobias Bieniek.
+
 - fix issue403: allow parametrize of multiple same-name functions within
   a collection node.  Thanks Andreas Kloeckner and Alex Gaynor for reporting
   and analysis.
@@ -16,6 +18,7 @@
   optparse. Thanks Daniel D. Wright.
 
 
+
 2.5.0
 -----------------------------------
 

diff -r eb1152c7f93ce62af0c50f35fc047216ad7b9b6e -r fb3f51899ab4c5e21687fbba0224931c929352cd doc/en/_templates/links.html
--- a/doc/en/_templates/links.html
+++ b/doc/en/_templates/links.html
@@ -3,7 +3,7 @@
   <li><a href="{{ pathto('index') }}">The pytest Website</a></li><li><a href="https://pypi.python.org/pypi/pytest">pytest @ PyPI</a></li><li><a href="https://bitbucket.org/hpk42/pytest/">pytest @ Bitbucket</a></li>
-  <li><a href="https://bitbucket.org/hpk42/pytest/issues">Issue Tracker</a></li>
+  <li><a href="https://bitbucket.org/hpk42/py/issues?status=new&status=open">Issue Tracker</a></li><li><a href="http://pytest.org/latest/pytest.pdf">PDF Documentation</a></ul>
 

diff -r eb1152c7f93ce62af0c50f35fc047216ad7b9b6e -r fb3f51899ab4c5e21687fbba0224931c929352cd doc/en/announce/index.txt
--- a/doc/en/announce/index.txt
+++ b/doc/en/announce/index.txt
@@ -5,6 +5,7 @@
 .. toctree::
    :maxdepth: 2
 
+   release-2.5.1
    release-2.5.0
    release-2.4.2
    release-2.4.1

diff -r eb1152c7f93ce62af0c50f35fc047216ad7b9b6e -r fb3f51899ab4c5e21687fbba0224931c929352cd doc/en/announce/release-2.5.1.txt
--- /dev/null
+++ b/doc/en/announce/release-2.5.1.txt
@@ -0,0 +1,45 @@
+pytest-2.5.1: fixes and new home page styling
+===========================================================================
+
+pytest-2.5.1, a mature testing tool with more than a 1000 tests 
+against itself, maintains the "zero-reported-bugs" promise by fixing
+the three bugs reported since the last release a few days ago.  It also 
+features a new home page styling implemented by Tobias Bieniek, based on
+original work from Armin Ronacher.  Check it out:
+
+    http://pytest.org
+
+If you have anything more to improve styling and docs, 
+we'd be very happy to merge further pull requests.
+
+On the coding side, the release also contains a little enhancement to
+fixture decorators allowing to directly influence generation of test
+ids, thanks to Floris Bruynooghe.  Other thanks for helping with 
+this release also go to Anatoly Bubenkoff and Ronny Pfannschmidt.
+
+As usual, you can upgrade from pypi via::
+
+    pip install -U pytest
+
+have fun and a nice remaining time of the year!
+holger krekel
+
+2.5.1
+-----------------------------------
+
+- merge new documentation styling PR from Tobias Bieniek.
+
+- fix issue403: allow parametrize of multiple same-name functions within
+  a collection node.  Thanks Andreas Kloeckner and Alex Gaynor for reporting
+  and analysis.
+
+- Allow parameterized fixtures to specify the ID of the parameters by
+  adding an ids argument to pytest.fixture() and pytest.yield_fixture().
+  Thanks Floris Bruynooghe. 
+
+- fix issue404 by always using the binary xml escape in the junitxml
+  plugin.  Thanks Ronny Pfannschmidt.
+
+- fix issue407: fix addoption docstring to point to argparse instead of
+  optparse. Thanks Daniel D. Wright.
+

diff -r eb1152c7f93ce62af0c50f35fc047216ad7b9b6e -r fb3f51899ab4c5e21687fbba0224931c929352cd doc/en/fixture.txt
--- a/doc/en/fixture.txt
+++ b/doc/en/fixture.txt
@@ -626,6 +626,7 @@
     usefixtures = cleandir
 
 
+.. _`autouse`:
 .. _`autouse fixtures`:
 
 autouse fixtures (xUnit setup on steroids)

diff -r eb1152c7f93ce62af0c50f35fc047216ad7b9b6e -r fb3f51899ab4c5e21687fbba0224931c929352cd doc/en/goodpractises.txt
--- a/doc/en/goodpractises.txt
+++ b/doc/en/goodpractises.txt
@@ -69,7 +69,7 @@
 
 - **avoid "__init__.py" files in your test directories**.
   This way your tests can run easily against an installed version 
-  of ``mypkg``, independently from if the installed version contains 
+  of ``mypkg``, independently from if the installed package contains 
   the tests or not.  
 
 - With inlined tests you might put ``__init__.py`` into test 
@@ -96,16 +96,14 @@
 .. note::
 
     You can use Python3 namespace packages (PEP420) for your application
-    but pytest will still perform `package name`_ discovery based on the
-    presence of ``__init__.py`` files.  If you use one of the above
-    two recommended file system layouts but leave away the ``__init__.py``
-    files it should just work on Python3.3 and above.  When using 
+    but pytest will still perform `test package name`_ discovery based on the
+    presence of ``__init__.py`` files.  If you use one of the 
+    two recommended file system layouts above but leave away the ``__init__.py``
+    files from your directories it should just work on Python3.3 and above.  From 
     "inlined tests", however, you will need to use absolute imports for
-    getting at your application code because the test modules will be
-    imported directly, without any application context.  The latter allows
-    your tests to run against an installed version of your package.
+    getting at your application code.
 
-.. _`package name`:
+.. _`test package name`:
 
 .. note::
 

diff -r eb1152c7f93ce62af0c50f35fc047216ad7b9b6e -r fb3f51899ab4c5e21687fbba0224931c929352cd doc/en/index.txt
--- a/doc/en/index.txt
+++ b/doc/en/index.txt
@@ -9,44 +9,43 @@
 **a mature full-featured Python testing tool**
 
  - runs on Posix/Windows, Python 2.5-3.3, PyPy and Jython-2.5.1
+ - **zero-reported-bugs** policy with >1000 tests against itself
+ - **strict backward compatibility policy** for safe pytest upgrades
  - :ref:`comprehensive online <toc>` and `PDF documentation <pytest.pdf>`_
- - many :ref:`third party plugins <extplugins>` and 
-   :ref:`builtin helpers <pytest helpers>`
- - used in :ref:`many projects and organisations <projects>`, in test
-   suites with up to twenty thousand tests
- - strict policy of remaining backward compatible across releases
+ - many :ref:`third party plugins <extplugins>`, 
+   :ref:`builtin helpers <pytest helpers>`, 
+ - used in :ref:`many small and large projects and organisations <projects>`
  - comes with many :ref:`tested examples <examples>`
 
 **provides easy no-boilerplate testing**
 
  - makes it :ref:`easy to get started <getstarted>`, 
-   many :ref:`usage options <usage>`
+   has many :ref:`usage options <usage>`
  - :ref:`assert with the assert statement`
  - helpful :ref:`traceback and failing assertion reporting <tbreportdemo>`
- - allows :ref:`print debugging <printdebugging>` and :ref:`the
+ - :ref:`print debugging <printdebugging>` and :ref:`the
    capturing of standard output during test execution <captures>`
 
 **scales from simple unit to complex functional testing**
 
  - :ref:`modular parametrizeable fixtures <fixture>` (new in 2.3,
-   improved in 2.4)
+   continously improved)
  - :ref:`parametrized test functions <parametrized test functions>`
  - :ref:`mark`
  - :ref:`skipping` (improved in 2.4)
- - can :ref:`distribute tests to multiple CPUs <xdistcpu>` through :ref:`xdist plugin <xdist>`
- - can :ref:`continuously re-run failing tests <looponfailing>`
+ - :ref:`distribute tests to multiple CPUs <xdistcpu>` through :ref:`xdist plugin <xdist>`
+ - :ref:`continuously re-run failing tests <looponfailing>`
  - flexible :ref:`Python test discovery`
 
-**integrates many common testing methods**:
+**integrates with other testing methods and tools**:
 
- - multi-paradigm: pytest can run many ``nose``, ``unittest.py`` and
-   ``doctest.py`` style test suites, including running testcases made for
+ - multi-paradigm: pytest can run ``nose``, ``unittest`` and 
+   ``doctest`` style test suites, including running testcases made for
    Django and trial
  - supports :ref:`good integration practises <goodpractises>`
  - supports extended :ref:`xUnit style setup <xunitsetup>`
  - supports domain-specific :ref:`non-python tests`
  - supports the generation of testing coverage reports
- - `Javascript unit- and functional testing`_
  - supports :pep:`8` compliant coding styles in tests
 
 **extensive plugin and customization system**:
@@ -56,8 +55,6 @@
  - it is easy to add command line options or customize existing behaviour
 
 
-.. _`Javascript unit- and functional testing`: http://pypi.python.org/pypi/oejskit
-
 .. _`easy`: http://bruynooghe.blogspot.com/2009/12/skipping-slow-test-by-default-in-pytest.html
 
 


https://bitbucket.org/hpk42/pytest/commits/0fc89a5b7788/
Changeset:   0fc89a5b7788
User:        hpk42
Date:        2013-12-17 08:30:35
Summary:     regen docs for 2.5.1, add links for coverage reports
Affected #:  19 files

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/assert.txt
--- a/doc/en/assert.txt
+++ b/doc/en/assert.txt
@@ -26,7 +26,7 @@
 
     $ py.test test_assert1.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 1 items
     
     test_assert1.py F
@@ -116,7 +116,7 @@
 
     $ py.test test_assert2.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 1 items
     
     test_assert2.py F

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/capture.txt
--- a/doc/en/capture.txt
+++ b/doc/en/capture.txt
@@ -64,7 +64,7 @@
 
     $ py.test
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 2 items
     
     test_module.py .F
@@ -78,7 +78,7 @@
     
     test_module.py:9: AssertionError
     ----------------------------- Captured stdout ------------------------------
-    setting up <function test_func2 at 0x29437d0>
+    setting up <function test_func2 at 0x1eb37d0>
     ==================== 1 failed, 1 passed in 0.01 seconds ====================
 
 Accessing captured output from a test function

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/conf.py
--- a/doc/en/conf.py
+++ b/doc/en/conf.py
@@ -17,8 +17,8 @@
 #
 # The full version, including alpha/beta/rc tags.
 # The short X.Y version.
-version = "2.5.0"
-release = "2.5.0"
+version = "2.5.1"
+release = "2.5.1"
 
 import sys, os
 

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/doctest.txt
--- a/doc/en/doctest.txt
+++ b/doc/en/doctest.txt
@@ -44,7 +44,7 @@
 
     $ py.test
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 1 items
     
     mymodule.py .

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/example/markers.txt
--- a/doc/en/example/markers.txt
+++ b/doc/en/example/markers.txt
@@ -28,7 +28,7 @@
 
     $ py.test -v -m webtest
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0 -- /home/hpk/p/pytest/.tox/regen/bin/python
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1 -- /home/hpk/p/pytest/.tox/regen/bin/python
     collecting ... collected 3 items
     
     test_server.py:3: test_send_http PASSED
@@ -40,7 +40,7 @@
     
     $ py.test -v -m "not webtest"
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0 -- /home/hpk/p/pytest/.tox/regen/bin/python
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1 -- /home/hpk/p/pytest/.tox/regen/bin/python
     collecting ... collected 3 items
     
     test_server.py:6: test_something_quick PASSED
@@ -61,7 +61,7 @@
 
     $ py.test -v -k http  # running with the above defined example module
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0 -- /home/hpk/p/pytest/.tox/regen/bin/python
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1 -- /home/hpk/p/pytest/.tox/regen/bin/python
     collecting ... collected 3 items
     
     test_server.py:3: test_send_http PASSED
@@ -73,7 +73,7 @@
 
     $ py.test -k "not send_http" -v
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0 -- /home/hpk/p/pytest/.tox/regen/bin/python
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1 -- /home/hpk/p/pytest/.tox/regen/bin/python
     collecting ... collected 3 items
     
     test_server.py:6: test_something_quick PASSED
@@ -86,7 +86,7 @@
 
     $ py.test -k "http or quick" -v
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0 -- /home/hpk/p/pytest/.tox/regen/bin/python
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1 -- /home/hpk/p/pytest/.tox/regen/bin/python
     collecting ... collected 3 items
     
     test_server.py:3: test_send_http PASSED
@@ -266,7 +266,7 @@
 
     $ py.test -E stage2
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 1 items
     
     test_someenv.py s
@@ -277,7 +277,7 @@
 
     $ py.test -E stage1
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 1 items
     
     test_someenv.py .
@@ -395,12 +395,12 @@
 
     $ py.test -rs # this option reports skip reasons
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 4 items
     
     test_plat.py s.s.
     ========================= short test summary info ==========================
-    SKIP [2] /tmp/doc-exec-62/conftest.py:12: cannot run on platform linux2
+    SKIP [2] /tmp/doc-exec-63/conftest.py:12: cannot run on platform linux2
     
     =================== 2 passed, 2 skipped in 0.01 seconds ====================
 
@@ -408,7 +408,7 @@
 
     $ py.test -m linux2
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 4 items
     
     test_plat.py .
@@ -459,7 +459,7 @@
 
   $ py.test -m interface --tb=short
   =========================== test session starts ============================
-  platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+  platform linux2 -- Python 2.7.3 -- pytest-2.5.1
   collected 4 items
   
   test_module.py FF
@@ -480,7 +480,7 @@
 
   $ py.test -m "interface or event" --tb=short
   =========================== test session starts ============================
-  platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+  platform linux2 -- Python 2.7.3 -- pytest-2.5.1
   collected 4 items
   
   test_module.py FFF

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/example/nonpython.txt
--- a/doc/en/example/nonpython.txt
+++ b/doc/en/example/nonpython.txt
@@ -27,7 +27,7 @@
 
     nonpython $ py.test test_simple.yml
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 2 items
     
     test_simple.yml .F
@@ -56,7 +56,7 @@
 
     nonpython $ py.test -v
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0 -- /home/hpk/p/pytest/.tox/regen/bin/python
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1 -- /home/hpk/p/pytest/.tox/regen/bin/python
     collecting ... collected 2 items
     
     test_simple.yml:1: usecase: ok PASSED
@@ -74,10 +74,10 @@
 
     nonpython $ py.test --collect-only
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 2 items
     <YamlFile 'test_simple.yml'><YamlItem 'ok'><YamlItem 'hello'>
     
-    =============================  in 0.03 seconds =============================
+    =============================  in 0.02 seconds =============================

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/example/parametrize.txt
--- a/doc/en/example/parametrize.txt
+++ b/doc/en/example/parametrize.txt
@@ -106,7 +106,7 @@
 
     $ py.test test_scenarios.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 4 items
     
     test_scenarios.py ....
@@ -118,7 +118,7 @@
 
     $ py.test --collect-only test_scenarios.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 4 items
     <Module 'test_scenarios.py'><Class 'TestSampleWithScenarios'>
@@ -182,7 +182,7 @@
 
     $ py.test test_backends.py --collect-only
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 2 items
     <Module 'test_backends.py'><Function 'test_db_initialized[d1]'>
@@ -197,7 +197,7 @@
     ================================= FAILURES =================================
     _________________________ test_db_initialized[d2] __________________________
     
-    db = <conftest.DB2 instance at 0x1992c20>
+    db = <conftest.DB2 instance at 0x12d4128>
     
         def test_db_initialized(db):
             # a dummy test
@@ -251,9 +251,9 @@
     $ py.test -q
     F..
     ================================= FAILURES =================================
-    ________________________ TestClass.test_equals[1-2] ________________________
+    ________________________ TestClass.test_equals[2-1] ________________________
     
-    self = <test_parametrize.TestClass instance at 0x13483b0>, a = 1, b = 2
+    self = <test_parametrize.TestClass instance at 0x14493f8>, a = 1, b = 2
     
         def test_equals(self, a, b):
     >       assert a == b
@@ -282,7 +282,7 @@
    ............sss............sss............sss............ssssssssssssssssss
    ========================= short test summary info ==========================
    SKIP [27] /home/hpk/p/pytest/doc/en/example/multipython.py:21: 'python2.8' not found
-   48 passed, 27 skipped in 1.41 seconds
+   48 passed, 27 skipped in 1.34 seconds
 
 Indirect parametrization of optional implementations/imports
 --------------------------------------------------------------------
@@ -329,12 +329,12 @@
 
     $ py.test -rs test_module.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 2 items
     
     test_module.py .s
     ========================= short test summary info ==========================
-    SKIP [1] /tmp/doc-exec-64/conftest.py:10: could not import 'opt2'
+    SKIP [1] /tmp/doc-exec-65/conftest.py:10: could not import 'opt2'
     
     =================== 1 passed, 1 skipped in 0.01 seconds ====================
 

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/example/pythoncollection.txt
--- a/doc/en/example/pythoncollection.txt
+++ b/doc/en/example/pythoncollection.txt
@@ -43,7 +43,7 @@
 
     $ py.test --collect-only
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 2 items
     <Module 'check_myapp.py'><Class 'CheckMyApp'>
@@ -88,7 +88,7 @@
 
     . $ py.test --collect-only pythoncollection.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 3 items
     <Module 'pythoncollection.py'><Function 'test_function'>
@@ -141,7 +141,7 @@
     
     $ py.test --collect-only
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 1 items
     <Module 'pkg/module_py2.py'><Function 'test_only_on_python2'>

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/example/reportingdemo.txt
--- a/doc/en/example/reportingdemo.txt
+++ b/doc/en/example/reportingdemo.txt
@@ -13,7 +13,7 @@
 
     assertion $ py.test failure_demo.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 39 items
     
     failure_demo.py FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
@@ -30,7 +30,7 @@
     failure_demo.py:15: AssertionError
     _________________________ TestFailing.test_simple __________________________
     
-    self = <failure_demo.TestFailing object at 0x1d5e7d0>
+    self = <failure_demo.TestFailing object at 0x12d9250>
     
         def test_simple(self):
             def f():
@@ -40,13 +40,13 @@
         
     >       assert f() == g()
     E       assert 42 == 43
-    E        +  where 42 = <function f at 0x1cfcb90>()
-    E        +  and   43 = <function g at 0x1cfcc08>()
+    E        +  where 42 = <function f at 0x1278b90>()
+    E        +  and   43 = <function g at 0x1278c08>()
     
     failure_demo.py:28: AssertionError
     ____________________ TestFailing.test_simple_multiline _____________________
     
-    self = <failure_demo.TestFailing object at 0x1d0fed0>
+    self = <failure_demo.TestFailing object at 0x1287210>
     
         def test_simple_multiline(self):
             otherfunc_multi(
@@ -66,19 +66,19 @@
     failure_demo.py:11: AssertionError
     ___________________________ TestFailing.test_not ___________________________
     
-    self = <failure_demo.TestFailing object at 0x1d4bc10>
+    self = <failure_demo.TestFailing object at 0x12c6e10>
     
         def test_not(self):
             def f():
                 return 42
     >       assert not f()
     E       assert not 42
-    E        +  where 42 = <function f at 0x1d071b8>()
+    E        +  where 42 = <function f at 0x12861b8>()
     
     failure_demo.py:38: AssertionError
     _________________ TestSpecialisedExplanations.test_eq_text _________________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x1d0bed0>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x1290c50>
     
         def test_eq_text(self):
     >       assert 'spam' == 'eggs'
@@ -89,7 +89,7 @@
     failure_demo.py:42: AssertionError
     _____________ TestSpecialisedExplanations.test_eq_similar_text _____________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x1d0de10>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x12877d0>
     
         def test_eq_similar_text(self):
     >       assert 'foo 1 bar' == 'foo 2 bar'
@@ -102,7 +102,7 @@
     failure_demo.py:45: AssertionError
     ____________ TestSpecialisedExplanations.test_eq_multiline_text ____________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x1d5e110>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x12de1d0>
     
         def test_eq_multiline_text(self):
     >       assert 'foo\nspam\nbar' == 'foo\neggs\nbar'
@@ -115,7 +115,7 @@
     failure_demo.py:48: AssertionError
     ______________ TestSpecialisedExplanations.test_eq_long_text _______________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x1ec06d0>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x143b5d0>
     
         def test_eq_long_text(self):
             a = '1'*100 + 'a' + '2'*100
@@ -132,7 +132,7 @@
     failure_demo.py:53: AssertionError
     _________ TestSpecialisedExplanations.test_eq_long_text_multiline __________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x1d0d950>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x1287810>
     
         def test_eq_long_text_multiline(self):
             a = '1\n'*100 + 'a' + '2\n'*100
@@ -156,7 +156,7 @@
     failure_demo.py:58: AssertionError
     _________________ TestSpecialisedExplanations.test_eq_list _________________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x1d61c50>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x12900d0>
     
         def test_eq_list(self):
     >       assert [0, 1, 2] == [0, 1, 3]
@@ -166,7 +166,7 @@
     failure_demo.py:61: AssertionError
     ______________ TestSpecialisedExplanations.test_eq_list_long _______________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x1d4be10>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x12c62d0>
     
         def test_eq_list_long(self):
             a = [0]*100 + [1] + [3]*100
@@ -178,7 +178,7 @@
     failure_demo.py:66: AssertionError
     _________________ TestSpecialisedExplanations.test_eq_dict _________________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x1ec0ad0>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x12deb50>
     
         def test_eq_dict(self):
     >       assert {'a': 0, 'b': 1, 'c': 0} == {'a': 0, 'b': 2, 'd': 0}
@@ -194,7 +194,7 @@
     failure_demo.py:69: AssertionError
     _________________ TestSpecialisedExplanations.test_eq_set __________________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x1d0bbd0>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x128b4d0>
     
         def test_eq_set(self):
     >       assert set([0, 10, 11, 12]) == set([0, 20, 21])
@@ -210,7 +210,7 @@
     failure_demo.py:72: AssertionError
     _____________ TestSpecialisedExplanations.test_eq_longer_list ______________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x1d4bd10>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x12c6b10>
     
         def test_eq_longer_list(self):
     >       assert [1,2] == [1,2,3]
@@ -220,7 +220,7 @@
     failure_demo.py:75: AssertionError
     _________________ TestSpecialisedExplanations.test_in_list _________________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x1ec0650>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x143b650>
     
         def test_in_list(self):
     >       assert 1 in [0, 2, 3, 4, 5]
@@ -229,7 +229,7 @@
     failure_demo.py:78: AssertionError
     __________ TestSpecialisedExplanations.test_not_in_text_multiline __________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x1d0bad0>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x128be10>
     
         def test_not_in_text_multiline(self):
             text = 'some multiline\ntext\nwhich\nincludes foo\nand a\ntail'
@@ -247,7 +247,7 @@
     failure_demo.py:82: AssertionError
     ___________ TestSpecialisedExplanations.test_not_in_text_single ____________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x1d0d410>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x12d9fd0>
     
         def test_not_in_text_single(self):
             text = 'single foo line'
@@ -260,7 +260,7 @@
     failure_demo.py:86: AssertionError
     _________ TestSpecialisedExplanations.test_not_in_text_single_long _________
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x1ec0610>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x143bdd0>
     
         def test_not_in_text_single_long(self):
             text = 'head ' * 50 + 'foo ' + 'tail ' * 20
@@ -273,7 +273,7 @@
     failure_demo.py:90: AssertionError
     ______ TestSpecialisedExplanations.test_not_in_text_single_long_term _______
     
-    self = <failure_demo.TestSpecialisedExplanations object at 0x1d5ed50>
+    self = <failure_demo.TestSpecialisedExplanations object at 0x12c6390>
     
         def test_not_in_text_single_long_term(self):
             text = 'head ' * 50 + 'f'*70 + 'tail ' * 20
@@ -292,7 +292,7 @@
             i = Foo()
     >       assert i.b == 2
     E       assert 1 == 2
-    E        +  where 1 = <failure_demo.Foo object at 0x1d0da50>.b
+    E        +  where 1 = <failure_demo.Foo object at 0x1287790>.b
     
     failure_demo.py:101: AssertionError
     _________________________ test_attribute_instance __________________________
@@ -302,8 +302,8 @@
                 b = 1
     >       assert Foo().b == 2
     E       assert 1 == 2
-    E        +  where 1 = <failure_demo.Foo object at 0x1d0b8d0>.b
-    E        +    where <failure_demo.Foo object at 0x1d0b8d0> = <class 'failure_demo.Foo'>()
+    E        +  where 1 = <failure_demo.Foo object at 0x12c6bd0>.b
+    E        +    where <failure_demo.Foo object at 0x12c6bd0> = <class 'failure_demo.Foo'>()
     
     failure_demo.py:107: AssertionError
     __________________________ test_attribute_failure __________________________
@@ -319,7 +319,7 @@
     failure_demo.py:116: 
     _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
     
-    self = <failure_demo.Foo object at 0x1d5eb90>
+    self = <failure_demo.Foo object at 0x12daed0>
     
         def _get_b(self):
     >       raise Exception('Failed to get attrib')
@@ -335,15 +335,15 @@
                 b = 2
     >       assert Foo().b == Bar().b
     E       assert 1 == 2
-    E        +  where 1 = <failure_demo.Foo object at 0x1d15c10>.b
-    E        +    where <failure_demo.Foo object at 0x1d15c10> = <class 'failure_demo.Foo'>()
-    E        +  and   2 = <failure_demo.Bar object at 0x1d15290>.b
-    E        +    where <failure_demo.Bar object at 0x1d15290> = <class 'failure_demo.Bar'>()
+    E        +  where 1 = <failure_demo.Foo object at 0x128bcd0>.b
+    E        +    where <failure_demo.Foo object at 0x128bcd0> = <class 'failure_demo.Foo'>()
+    E        +  and   2 = <failure_demo.Bar object at 0x128b050>.b
+    E        +    where <failure_demo.Bar object at 0x128b050> = <class 'failure_demo.Bar'>()
     
     failure_demo.py:124: AssertionError
     __________________________ TestRaises.test_raises __________________________
     
-    self = <failure_demo.TestRaises instance at 0x1ee2248>
+    self = <failure_demo.TestRaises instance at 0x145c7e8>
     
         def test_raises(self):
             s = 'qwe'
@@ -355,10 +355,10 @@
     >   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:976>:1: ValueError
+    <0-codegen /home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/python.py:983>:1: ValueError
     ______________________ TestRaises.test_raises_doesnt _______________________
     
-    self = <failure_demo.TestRaises instance at 0x1d14b48>
+    self = <failure_demo.TestRaises instance at 0x1455f38>
     
         def test_raises_doesnt(self):
     >       raises(IOError, "int('3')")
@@ -367,7 +367,7 @@
     failure_demo.py:136: Failed
     __________________________ TestRaises.test_raise ___________________________
     
-    self = <failure_demo.TestRaises instance at 0x1ed9cb0>
+    self = <failure_demo.TestRaises instance at 0x1453998>
     
         def test_raise(self):
     >       raise ValueError("demo error")
@@ -376,7 +376,7 @@
     failure_demo.py:139: ValueError
     ________________________ TestRaises.test_tupleerror ________________________
     
-    self = <failure_demo.TestRaises instance at 0x1eeb200>
+    self = <failure_demo.TestRaises instance at 0x1465560>
     
         def test_tupleerror(self):
     >       a,b = [1]
@@ -385,7 +385,7 @@
     failure_demo.py:142: ValueError
     ______ TestRaises.test_reinterpret_fails_with_print_for_the_fun_of_it ______
     
-    self = <failure_demo.TestRaises instance at 0x1eebdd0>
+    self = <failure_demo.TestRaises instance at 0x1465758>
     
         def test_reinterpret_fails_with_print_for_the_fun_of_it(self):
             l = [1,2,3]
@@ -398,7 +398,7 @@
     l is [1, 2, 3]
     ________________________ TestRaises.test_some_error ________________________
     
-    self = <failure_demo.TestRaises instance at 0x1edf758>
+    self = <failure_demo.TestRaises instance at 0x1468ab8>
     
         def test_some_error(self):
     >       if namenotexi:
@@ -426,7 +426,7 @@
     <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 0x1ed0128>
+    self = <failure_demo.TestMoreErrors instance at 0x1442908>
     
         def test_complex_error(self):
             def f():
@@ -455,7 +455,7 @@
     failure_demo.py:5: AssertionError
     ___________________ TestMoreErrors.test_z1_unpack_error ____________________
     
-    self = <failure_demo.TestMoreErrors instance at 0x1ec7f38>
+    self = <failure_demo.TestMoreErrors instance at 0x145bab8>
     
         def test_z1_unpack_error(self):
             l = []
@@ -465,7 +465,7 @@
     failure_demo.py:179: ValueError
     ____________________ TestMoreErrors.test_z2_type_error _____________________
     
-    self = <failure_demo.TestMoreErrors instance at 0x1ee47a0>
+    self = <failure_demo.TestMoreErrors instance at 0x1444368>
     
         def test_z2_type_error(self):
             l = 3
@@ -475,19 +475,19 @@
     failure_demo.py:183: TypeError
     ______________________ TestMoreErrors.test_startswith ______________________
     
-    self = <failure_demo.TestMoreErrors instance at 0x1eea2d8>
+    self = <failure_demo.TestMoreErrors instance at 0x146e4d0>
     
         def test_startswith(self):
             s = "123"
             g = "456"
     >       assert s.startswith(g)
-    E       assert <built-in method startswith of str object at 0x1d63a58>('456')
-    E        +  where <built-in method startswith of str object at 0x1d63a58> = '123'.startswith
+    E       assert <built-in method startswith of str object at 0x12dfa58>('456')
+    E        +  where <built-in method startswith of str object at 0x12dfa58> = '123'.startswith
     
     failure_demo.py:188: AssertionError
     __________________ TestMoreErrors.test_startswith_nested ___________________
     
-    self = <failure_demo.TestMoreErrors instance at 0x1ef08c0>
+    self = <failure_demo.TestMoreErrors instance at 0x143ed40>
     
         def test_startswith_nested(self):
             def f():
@@ -495,15 +495,15 @@
             def g():
                 return "456"
     >       assert f().startswith(g())
-    E       assert <built-in method startswith of str object at 0x1d63a58>('456')
-    E        +  where <built-in method startswith of str object at 0x1d63a58> = '123'.startswith
-    E        +    where '123' = <function f at 0x1d07500>()
-    E        +  and   '456' = <function g at 0x1cf2b18>()
+    E       assert <built-in method startswith of str object at 0x12dfa58>('456')
+    E        +  where <built-in method startswith of str object at 0x12dfa58> = '123'.startswith
+    E        +    where '123' = <function f at 0x1286500>()
+    E        +  and   '456' = <function g at 0x126db18>()
     
     failure_demo.py:195: AssertionError
     _____________________ TestMoreErrors.test_global_func ______________________
     
-    self = <failure_demo.TestMoreErrors instance at 0x1ed4a70>
+    self = <failure_demo.TestMoreErrors instance at 0x1453b90>
     
         def test_global_func(self):
     >       assert isinstance(globf(42), float)
@@ -513,18 +513,18 @@
     failure_demo.py:198: AssertionError
     _______________________ TestMoreErrors.test_instance _______________________
     
-    self = <failure_demo.TestMoreErrors instance at 0x1edf998>
+    self = <failure_demo.TestMoreErrors instance at 0x146b128>
     
         def test_instance(self):
             self.x = 6*7
     >       assert self.x != 42
     E       assert 42 != 42
-    E        +  where 42 = <failure_demo.TestMoreErrors instance at 0x1edf998>.x
+    E        +  where 42 = <failure_demo.TestMoreErrors instance at 0x146b128>.x
     
     failure_demo.py:202: AssertionError
     _______________________ TestMoreErrors.test_compare ________________________
     
-    self = <failure_demo.TestMoreErrors instance at 0x1edf3f8>
+    self = <failure_demo.TestMoreErrors instance at 0x1469368>
     
         def test_compare(self):
     >       assert globf(10) < 5
@@ -534,7 +534,7 @@
     failure_demo.py:205: AssertionError
     _____________________ TestMoreErrors.test_try_finally ______________________
     
-    self = <failure_demo.TestMoreErrors instance at 0x1ef15f0>
+    self = <failure_demo.TestMoreErrors instance at 0x12c4098>
     
         def test_try_finally(self):
             x = 1
@@ -543,4 +543,4 @@
     E           assert 1 == 0
     
     failure_demo.py:210: AssertionError
-    ======================== 39 failed in 0.23 seconds =========================
+    ======================== 39 failed in 0.20 seconds =========================

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/example/simple.txt
--- a/doc/en/example/simple.txt
+++ b/doc/en/example/simple.txt
@@ -108,7 +108,7 @@
 
     $ py.test
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 0 items
     
     =============================  in 0.00 seconds =============================
@@ -152,12 +152,12 @@
 
     $ py.test -rs    # "-rs" means report details on the little 's'
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 2 items
     
     test_module.py .s
     ========================= short test summary info ==========================
-    SKIP [1] /tmp/doc-exec-67/conftest.py:9: need --runslow option to run
+    SKIP [1] /tmp/doc-exec-68/conftest.py:9: need --runslow option to run
     
     =================== 1 passed, 1 skipped in 0.01 seconds ====================
 
@@ -165,7 +165,7 @@
 
     $ py.test --runslow
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 2 items
     
     test_module.py ..
@@ -256,7 +256,7 @@
 
     $ py.test
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     project deps: mylib-1.1
     collected 0 items
     
@@ -279,7 +279,7 @@
 
     $ py.test -v
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0 -- /home/hpk/p/pytest/.tox/regen/bin/python
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1 -- /home/hpk/p/pytest/.tox/regen/bin/python
     info1: did you know that ...
     did you?
     collecting ... collected 0 items
@@ -290,7 +290,7 @@
 
     $ py.test
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 0 items
     
     =============================  in 0.00 seconds =============================
@@ -322,7 +322,7 @@
 
     $ py.test --durations=3
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 3 items
     
     test_some_are_slow.py ...
@@ -383,7 +383,7 @@
 
     $ py.test -rx
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 4 items
     
     test_step.py .Fx.
@@ -391,7 +391,7 @@
     ================================= FAILURES =================================
     ____________________ TestUserHandling.test_modification ____________________
     
-    self = <test_step.TestUserHandling instance at 0x192ea28>
+    self = <test_step.TestUserHandling instance at 0x2758c20>
     
         def test_modification(self):
     >       assert 0
@@ -401,7 +401,7 @@
     ========================= short test summary info ==========================
     XFAIL test_step.py::TestUserHandling::()::test_deletion
       reason: previous test failed (test_modification)
-    ============== 1 failed, 2 passed, 1 xfailed in 0.02 seconds ===============
+    ============== 1 failed, 2 passed, 1 xfailed in 0.01 seconds ===============
 
 We'll see that ``test_deletion`` was not executed because ``test_modification``
 failed.  It is reported as an "expected failure".
@@ -453,7 +453,7 @@
 
     $ py.test
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 7 items
     
     test_step.py .Fx.
@@ -463,17 +463,17 @@
     
     ================================== ERRORS ==================================
     _______________________ ERROR at setup of test_root ________________________
-    file /tmp/doc-exec-67/b/test_error.py, line 1
+    file /tmp/doc-exec-68/b/test_error.py, line 1
       def test_root(db):  # no db here, will error out
             fixture 'db' not found
-            available fixtures: monkeypatch, capsys, tmpdir, capfd, pytestconfig, recwarn
+            available fixtures: recwarn, capfd, pytestconfig, capsys, tmpdir, monkeypatch
             use 'py.test --fixtures [testpath]' for help on them.
     
-    /tmp/doc-exec-67/b/test_error.py:1
+    /tmp/doc-exec-68/b/test_error.py:1
     ================================= FAILURES =================================
     ____________________ TestUserHandling.test_modification ____________________
     
-    self = <test_step.TestUserHandling instance at 0x2099a28>
+    self = <test_step.TestUserHandling instance at 0x131fc20>
     
         def test_modification(self):
     >       assert 0
@@ -482,20 +482,20 @@
     test_step.py:9: AssertionError
     _________________________________ test_a1 __________________________________
     
-    db = <conftest.DB instance at 0x20a1518>
+    db = <conftest.DB instance at 0x1328878>
     
         def test_a1(db):
     >       assert 0, db  # to show value
-    E       AssertionError: <conftest.DB instance at 0x20a1518>
+    E       AssertionError: <conftest.DB instance at 0x1328878>
     
     a/test_db.py:2: AssertionError
     _________________________________ test_a2 __________________________________
     
-    db = <conftest.DB instance at 0x20a1518>
+    db = <conftest.DB instance at 0x1328878>
     
         def test_a2(db):
     >       assert 0, db  # to show value
-    E       AssertionError: <conftest.DB instance at 0x20a1518>
+    E       AssertionError: <conftest.DB instance at 0x1328878>
     
     a/test_db2.py:2: AssertionError
     ========== 3 failed, 2 passed, 1 xfailed, 1 error in 0.03 seconds ==========
@@ -553,7 +553,7 @@
 
     $ py.test test_module.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 2 items
     
     test_module.py FF
@@ -561,7 +561,7 @@
     ================================= FAILURES =================================
     ________________________________ test_fail1 ________________________________
     
-    tmpdir = local('/tmp/pytest-281/test_fail10')
+    tmpdir = local('/tmp/pytest-42/test_fail10')
     
         def test_fail1(tmpdir):
     >       assert 0
@@ -575,12 +575,12 @@
     E       assert 0
     
     test_module.py:4: AssertionError
-    ========================= 2 failed in 0.02 seconds =========================
+    ========================= 2 failed in 0.01 seconds =========================
 
 you will have a "failures" file which contains the failing test ids::
 
     $ cat failures
-    test_module.py::test_fail1 (/tmp/pytest-281/test_fail10)
+    test_module.py::test_fail1 (/tmp/pytest-42/test_fail10)
     test_module.py::test_fail2
 
 Making test result information available in fixtures
@@ -643,7 +643,7 @@
 
     $ py.test -s test_module.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 3 items
     
     test_module.py Esetting up a test failed! test_module.py::test_setup_fails

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/example/special.txt
--- a/doc/en/example/special.txt
+++ b/doc/en/example/special.txt
@@ -70,4 +70,4 @@
     .test other
     .test_unit1 method called
     .
-    4 passed in 0.02 seconds
+    4 passed in 0.01 seconds

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/fixture.txt
--- a/doc/en/fixture.txt
+++ b/doc/en/fixture.txt
@@ -76,7 +76,7 @@
 
     $ py.test test_smtpsimple.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 1 items
     
     test_smtpsimple.py F
@@ -84,7 +84,7 @@
     ================================= FAILURES =================================
     ________________________________ test_ehlo _________________________________
     
-    smtp = <smtplib.SMTP instance at 0x24a9950>
+    smtp = <smtplib.SMTP instance at 0x2ae3469203f8>
     
         def test_ehlo(smtp):
             response, msg = smtp.ehlo()
@@ -194,7 +194,7 @@
 
     $ py.test test_module.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 2 items
     
     test_module.py FF
@@ -202,7 +202,7 @@
     ================================= FAILURES =================================
     ________________________________ test_ehlo _________________________________
     
-    smtp = <smtplib.SMTP instance at 0x138a290>
+    smtp = <smtplib.SMTP instance at 0x1af5440>
     
         def test_ehlo(smtp):
             response = smtp.ehlo()
@@ -214,7 +214,7 @@
     test_module.py:6: AssertionError
     ________________________________ test_noop _________________________________
     
-    smtp = <smtplib.SMTP instance at 0x138a290>
+    smtp = <smtplib.SMTP instance at 0x1af5440>
     
         def test_noop(smtp):
             response = smtp.noop()
@@ -223,7 +223,7 @@
     E       assert 0
     
     test_module.py:11: AssertionError
-    ========================= 2 failed in 0.19 seconds =========================
+    ========================= 2 failed in 0.17 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 
@@ -271,7 +271,7 @@
     $ py.test -s -q --tb=no
     FFteardown smtp
     
-    2 failed in 0.24 seconds
+    2 failed in 0.17 seconds
 
 We see that the ``smtp`` instance is finalized after the two
 tests finished execution.  Note that if we decorated our fixture
@@ -312,7 +312,7 @@
 
     $ py.test -s -q --tb=no
     FF
-    2 failed in 0.23 seconds
+    2 failed in 0.21 seconds
 
 Let's quickly create another test module that actually sets the
 server URL in its module namespace::
@@ -379,7 +379,7 @@
     ================================= FAILURES =================================
     __________________________ test_ehlo[merlinux.eu] __________________________
     
-    smtp = <smtplib.SMTP instance at 0x15f7998>
+    smtp = <smtplib.SMTP instance at 0x100ac20>
     
         def test_ehlo(smtp):
             response = smtp.ehlo()
@@ -391,7 +391,7 @@
     test_module.py:6: AssertionError
     __________________________ test_noop[merlinux.eu] __________________________
     
-    smtp = <smtplib.SMTP instance at 0x15f7998>
+    smtp = <smtplib.SMTP instance at 0x100ac20>
     
         def test_noop(smtp):
             response = smtp.noop()
@@ -402,7 +402,7 @@
     test_module.py:11: AssertionError
     ________________________ test_ehlo[mail.python.org] ________________________
     
-    smtp = <smtplib.SMTP instance at 0x16535f0>
+    smtp = <smtplib.SMTP instance at 0x105b638>
     
         def test_ehlo(smtp):
             response = smtp.ehlo()
@@ -412,10 +412,10 @@
     
     test_module.py:5: AssertionError
     ----------------------------- Captured stdout ------------------------------
-    finalizing <smtplib.SMTP instance at 0x15f7998>
+    finalizing <smtplib.SMTP instance at 0x100ac20>
     ________________________ test_noop[mail.python.org] ________________________
     
-    smtp = <smtplib.SMTP instance at 0x16535f0>
+    smtp = <smtplib.SMTP instance at 0x105b638>
     
         def test_noop(smtp):
             response = smtp.noop()
@@ -424,7 +424,7 @@
     E       assert 0
     
     test_module.py:11: AssertionError
-    4 failed in 6.30 seconds
+    4 failed in 6.58 seconds
 
 We see that our two test functions each ran twice, against the different
 ``smtp`` instances.  Note also, that with the ``mail.python.org`` 
@@ -464,13 +464,13 @@
 
     $ py.test -v test_appsetup.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0 -- /home/hpk/p/pytest/.tox/regen/bin/python
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.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 5.63 seconds =========================
+    ========================= 2 passed in 5.95 seconds =========================
 
 Due to the parametrization of ``smtp`` the test will run twice with two
 different ``App`` instances and respective smtp servers.  There is no
@@ -528,7 +528,7 @@
 
     $ py.test -v -s test_module.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0 -- /home/hpk/p/pytest/.tox/regen/bin/python
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1 -- /home/hpk/p/pytest/.tox/regen/bin/python
     collecting ... collected 8 items
     
     test_module.py:15: test_0[1]   test0 1

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/getting-started.txt
--- a/doc/en/getting-started.txt
+++ b/doc/en/getting-started.txt
@@ -23,7 +23,7 @@
 To check your installation has installed the correct version::
 
     $ py.test --version
-    This is py.test version 2.5.0, imported from /home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/pytest.pyc
+    This is py.test version 2.5.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`.
 
@@ -45,7 +45,7 @@
 
     $ py.test
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 1 items
     
     test_sample.py F
@@ -93,7 +93,7 @@
 
     $ py.test -q test_sysexit.py
     .
-    1 passed in 0.01 seconds
+    1 passed in 0.00 seconds
 
 .. todo:: For further ways to assert exceptions see the `raises`
 
@@ -123,7 +123,7 @@
     ================================= FAILURES =================================
     ____________________________ TestClass.test_two ____________________________
     
-    self = <test_class.TestClass instance at 0x2a8fef0>
+    self = <test_class.TestClass instance at 0x2b57dd0>
     
         def test_two(self):
             x = "hello"
@@ -159,7 +159,7 @@
     ================================= FAILURES =================================
     _____________________________ test_needsfiles ______________________________
     
-    tmpdir = local('/tmp/pytest-277/test_needsfiles0')
+    tmpdir = local('/tmp/pytest-38/test_needsfiles0')
     
         def test_needsfiles(tmpdir):
             print tmpdir
@@ -168,8 +168,8 @@
     
     test_tmpdir.py:3: AssertionError
     ----------------------------- Captured stdout ------------------------------
-    /tmp/pytest-277/test_needsfiles0
-    1 failed in 0.01 seconds
+    /tmp/pytest-38/test_needsfiles0
+    1 failed in 0.04 seconds
 
 Before the test runs, a unique-per-test-invocation temporary directory
 was created.  More info at :ref:`tmpdir handling`.

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/index.txt
--- a/doc/en/index.txt
+++ b/doc/en/index.txt
@@ -12,8 +12,7 @@
  - **zero-reported-bugs** policy with >1000 tests against itself
  - **strict backward compatibility policy** for safe pytest upgrades
  - :ref:`comprehensive online <toc>` and `PDF documentation <pytest.pdf>`_
- - many :ref:`third party plugins <extplugins>`, 
-   :ref:`builtin helpers <pytest helpers>`, 
+ - many :ref:`third party plugins <extplugins>` and :ref:`builtin helpers <pytest helpers>`, 
  - used in :ref:`many small and large projects and organisations <projects>`
  - comes with many :ref:`tested examples <examples>`
 
@@ -45,7 +44,8 @@
  - supports :ref:`good integration practises <goodpractises>`
  - supports extended :ref:`xUnit style setup <xunitsetup>`
  - supports domain-specific :ref:`non-python tests`
- - supports the generation of testing coverage reports
+ - supports generating `test coverage reports
+   <https://pypi.python.org/pypi/pytest-cov>`_
  - supports :pep:`8` compliant coding styles in tests
 
 **extensive plugin and customization system**:

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/parametrize.txt
--- a/doc/en/parametrize.txt
+++ b/doc/en/parametrize.txt
@@ -53,7 +53,7 @@
 
     $ py.test 
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 3 items
     
     test_expectation.py ..F
@@ -100,7 +100,7 @@
 
     $ py.test
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 3 items
     
     test_expectation.py ..x
@@ -170,8 +170,8 @@
     
         def test_valid_string(stringinput):
     >       assert stringinput.isalpha()
-    E       assert <built-in method isalpha of str object at 0x2b4b17865198>()
-    E        +  where <built-in method isalpha of str object at 0x2b4b17865198> = '!'.isalpha
+    E       assert <built-in method isalpha of str object at 0x2b72934ca198>()
+    E        +  where <built-in method isalpha of str object at 0x2b72934ca198> = '!'.isalpha
     
     test_strings.py:3: AssertionError
     1 failed in 0.01 seconds
@@ -185,7 +185,7 @@
     $ 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:1087: got empty parameter set, function test_valid_string at /tmp/doc-exec-24/test_strings.py:1
+    SKIP [1] /home/hpk/p/pytest/.tox/regen/local/lib/python2.7/site-packages/_pytest/python.py:1094: got empty parameter set, function test_valid_string at /tmp/doc-exec-24/test_strings.py:1
     1 skipped in 0.01 seconds
 
 For further examples, you might want to look at :ref:`more

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/skipping.txt
--- a/doc/en/skipping.txt
+++ b/doc/en/skipping.txt
@@ -159,7 +159,7 @@
 
     example $ py.test -rx xfail_demo.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 6 items
     
     xfail_demo.py xxxxxx
@@ -176,7 +176,7 @@
     XFAIL xfail_demo.py::test_hello6
       reason: reason
     
-    ======================== 6 xfailed in 0.06 seconds =========================
+    ======================== 6 xfailed in 0.04 seconds =========================
 
 .. _`skip/xfail with parametrize`:
 

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/tmpdir.txt
--- a/doc/en/tmpdir.txt
+++ b/doc/en/tmpdir.txt
@@ -29,7 +29,7 @@
 
     $ py.test test_tmpdir.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 1 items
     
     test_tmpdir.py F
@@ -37,7 +37,7 @@
     ================================= FAILURES =================================
     _____________________________ test_create_file _____________________________
     
-    tmpdir = local('/tmp/pytest-278/test_create_file0')
+    tmpdir = local('/tmp/pytest-39/test_create_file0')
     
         def test_create_file(tmpdir):
             p = tmpdir.mkdir("sub").join("hello.txt")
@@ -48,7 +48,7 @@
     E       assert 0
     
     test_tmpdir.py:7: AssertionError
-    ========================= 1 failed in 0.02 seconds =========================
+    ========================= 1 failed in 0.01 seconds =========================
 
 .. _`base temporary directory`:
 

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/unittest.txt
--- a/doc/en/unittest.txt
+++ b/doc/en/unittest.txt
@@ -88,7 +88,7 @@
 
     $ py.test test_unittest_db.py
     =========================== test session starts ============================
-    platform linux2 -- Python 2.7.3 -- pytest-2.5.0
+    platform linux2 -- Python 2.7.3 -- pytest-2.5.1
     collected 2 items
     
     test_unittest_db.py FF
@@ -101,7 +101,7 @@
         def test_method1(self):
             assert hasattr(self, "db")
     >       assert 0, self.db   # fail for demo purposes
-    E       AssertionError: <conftest.DummyDB instance at 0x101b3b0>
+    E       AssertionError: <conftest.DummyDB instance at 0x11e23f8>
     
     test_unittest_db.py:9: AssertionError
     ___________________________ MyTest.test_method2 ____________________________
@@ -110,10 +110,10 @@
     
         def test_method2(self):
     >       assert 0, self.db   # fail for demo purposes
-    E       AssertionError: <conftest.DummyDB instance at 0x101b3b0>
+    E       AssertionError: <conftest.DummyDB instance at 0x11e23f8>
     
     test_unittest_db.py:12: AssertionError
-    ========================= 2 failed in 0.02 seconds =========================
+    ========================= 2 failed in 0.01 seconds =========================
 
 This default pytest traceback shows that the two test methods
 share the same ``self.db`` instance which was our intention
@@ -160,7 +160,7 @@
 
     $ py.test -q test_unittest_cleandir.py
     .
-    1 passed in 0.02 seconds
+    1 passed in 0.01 seconds
 
 ... gives us one passed test because the ``initdir`` fixture function
 was executed ahead of the ``test_method``.

diff -r fb3f51899ab4c5e21687fbba0224931c929352cd -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 doc/en/yieldfixture.txt
--- a/doc/en/yieldfixture.txt
+++ b/doc/en/yieldfixture.txt
@@ -52,7 +52,7 @@
     test called
     .teardown after yield
     
-    1 passed in 0.01 seconds
+    1 passed in 0.00 seconds
 
 We can also seemlessly use the new syntax with ``with`` statements.
 Let's simplify the above ``passwd`` fixture::


https://bitbucket.org/hpk42/pytest/commits/c82fe9a33cbe/
Changeset:   c82fe9a33cbe
User:        hpk42
Date:        2013-12-17 08:43:01
Summary:     last change to release announce
Affected #:  1 file

diff -r 0fc89a5b77889a75a58709077d2a7e9b8490a145 -r c82fe9a33cbeb1432342cd313e545060e43c592b doc/en/announce/release-2.5.1.txt
--- a/doc/en/announce/release-2.5.1.txt
+++ b/doc/en/announce/release-2.5.1.txt
@@ -1,11 +1,13 @@
 pytest-2.5.1: fixes and new home page styling
 ===========================================================================
 
-pytest-2.5.1, a mature testing tool with more than a 1000 tests 
-against itself, maintains the "zero-reported-bugs" promise by fixing
-the three bugs reported since the last release a few days ago.  It also 
+pytest is a mature Python testing tool with more than a 1000 tests 
+against itself, passing on many different interpreters and platforms.  
+
+The 2.5.1 release maintains the "zero-reported-bugs" promise by fixing
+the three bugs reported since the last release a few days ago.  It also
 features a new home page styling implemented by Tobias Bieniek, based on
-original work from Armin Ronacher.  Check it out:
+the flask theme from Armin Ronacher:
 
     http://pytest.org
 
@@ -15,13 +17,13 @@
 On the coding side, the release also contains a little enhancement to
 fixture decorators allowing to directly influence generation of test
 ids, thanks to Floris Bruynooghe.  Other thanks for helping with 
-this release also go to Anatoly Bubenkoff and Ronny Pfannschmidt.
+this release go to Anatoly Bubenkoff and Ronny Pfannschmidt.
 
 As usual, you can upgrade from pypi via::
 
     pip install -U pytest
 
-have fun and a nice remaining time of the year!
+have fun and a nice remaining "bug-free" time of the year :)
 holger krekel
 
 2.5.1


https://bitbucket.org/hpk42/pytest/commits/53b252dcad06/
Changeset:   53b252dcad06
User:        hpk42
Date:        2013-12-17 08:56:59
Summary:     use gudea/gudea as header/body fonts
Affected #:  2 files

diff -r c82fe9a33cbeb1432342cd313e545060e43c592b -r 53b252dcad06836ff05c88cfd8f7e25b5a60f7e8 doc/en/_themes/flask/layout.html
--- a/doc/en/_themes/flask/layout.html
+++ b/doc/en/_themes/flask/layout.html
@@ -5,7 +5,7 @@
   <link rel="apple-touch-icon" href="{{ pathto('_static/' ~ theme_touch_icon, 1) }}" />
   {% endif %}
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
-  <link href='http://fonts.googleapis.com/css?family=Exo+2|Gudea' rel='stylesheet' type='text/css'>
+  <link href='http://fonts.googleapis.com/css?family=Gudea|Gudea' rel='stylesheet' type='text/css'>
 {% endblock %}
 {%- block relbar2 %}{% endblock %}
 {% block header %}

diff -r c82fe9a33cbeb1432342cd313e545060e43c592b -r 53b252dcad06836ff05c88cfd8f7e25b5a60f7e8 doc/en/_themes/flask/static/flasky.css_t
--- a/doc/en/_themes/flask/static/flasky.css_t
+++ b/doc/en/_themes/flask/static/flasky.css_t
@@ -9,7 +9,7 @@
 {% set page_width = '940px' %}
 {% set sidebar_width = '220px' %}
 {% set base_font = '"Gudea", sans-serif' %}
-{% set header_font = '"Exo 2", serif' %}
+{% set header_font = '"Gudea", sans-serif' %}
 {% set link_color = '#490' %}
 {% set link_hover_color = '#9c0' %}
 


https://bitbucket.org/hpk42/pytest/commits/039d543d1ca0/
Changeset:   039d543d1ca0
User:        hpk42
Date:        2013-12-17 08:59:50
Summary:     fix links and add github link
Affected #:  1 file

diff -r 53b252dcad06836ff05c88cfd8f7e25b5a60f7e8 -r 039d543d1ca02a716c0b0de9a7131beb8021e8a2 doc/en/_templates/links.html
--- a/doc/en/_templates/links.html
+++ b/doc/en/_templates/links.html
@@ -3,7 +3,8 @@
   <li><a href="{{ pathto('index') }}">The pytest Website</a></li><li><a href="https://pypi.python.org/pypi/pytest">pytest @ PyPI</a></li><li><a href="https://bitbucket.org/hpk42/pytest/">pytest @ Bitbucket</a></li>
-  <li><a href="https://bitbucket.org/hpk42/py/issues?status=new&status=open">Issue Tracker</a></li>
+  <li><a href="https://github.com/hpk42/pytest/">pytest @ github</a></li>
+  <li><a href="https://bitbucket.org/hpk42/pytest/issues?status=new&status=open">Issue Tracker</a></li><li><a href="http://pytest.org/latest/pytest.pdf">PDF Documentation</a></ul>
 


https://bitbucket.org/hpk42/pytest/commits/62af565e1bd7/
Changeset:   62af565e1bd7
User:        hpk42
Date:        2013-12-17 10:52:03
Summary:     Added tag 2.5.1 for changeset 039d543d1ca0
Affected #:  1 file

diff -r 039d543d1ca02a716c0b0de9a7131beb8021e8a2 -r 62af565e1bd7a6637c2baff137f9546f4886ab37 .hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -64,3 +64,4 @@
 8828c924acae0b4cad2e2cb92943d51da7cb744a 2.4.1
 8d051f89184bfa3033f5e59819dff9f32a612941 2.4.2
 a064ad64d167508a8e9e73766b1a4e6bd10c85db 2.5.0
+039d543d1ca02a716c0b0de9a7131beb8021e8a2 2.5.1

Repository URL: https://bitbucket.org/hpk42/pytest/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.


More information about the pytest-commit mailing list