[py-svn] pytest commit 2df60ca00849: also accept non-pytrace pytest.fail() call in setup/teardown methods

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Wed Nov 24 16:44:15 CET 2010


# HG changeset patch -- Bitbucket.org
# Project pytest
# URL http://bitbucket.org/hpk42/pytest/overview
# User holger krekel <holger at merlinux.eu>
# Date 1290613435 -3600
# Node ID 2df60ca008494643bb61267977d3eb66e3be7894
# Parent  06270cb47dadcbff1bb45fb3da8f7d0cb877ae0a
also accept non-pytrace pytest.fail() call in setup/teardown methods

--- a/testing/test_runner.py
+++ b/testing/test_runner.py
@@ -339,11 +339,15 @@ def test_pytest_fail_notrace(testdir):
         import pytest
         def test_hello():
             pytest.fail("hello", pytrace=False)
+        def teardown_function(function):
+            pytest.fail("world", pytrace=False)
     """)
     result = testdir.runpytest()
     result.stdout.fnmatch_lines([
-        "hello"
+        "world",
+        "hello",
     ])
+    assert 'def teardown_function' not in result.stdout.str()
 
 def test_exception_printing_skip():
     try:

--- a/_pytest/python.py
+++ b/_pytest/python.py
@@ -324,14 +324,14 @@ class FunctionMixin(PyobjMixin):
                 if line.strip().startswith('def'):
                     return FuncargLookupErrorRepr(fspath, lineno,
             lines[:i+1], str(excinfo.value))
+        if excinfo.errisinstance(pytest.fail.Exception):
+            if not excinfo.value.pytrace:
+                return str(excinfo.value)
         return super(FunctionMixin, self)._repr_failure_py(excinfo,
             style=style)
 
     def repr_failure(self, excinfo, outerr=None):
         assert outerr is None, "XXX outerr usage is deprecated"
-        if excinfo.errisinstance(pytest.fail.Exception):
-            if not excinfo.value.pytrace:
-                return str(excinfo.value)
         return self._repr_failure_py(excinfo,
             style=self.config.option.tbstyle)



More information about the pytest-commit mailing list