[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