fix issue 176: raises(AssertionError) now catches builtin AssertionError as well
This commit is contained in:
parent
0cca20bef9
commit
0e8cd9297a
|
@ -44,6 +44,10 @@ Changes between 2.2.4 and 2.3.0.dev
|
|||
|
||||
- fix issue 178: xml binary escapes are now wrapped in py.xml.raw
|
||||
|
||||
- fix issue 176: correctly catch the builtin AssertionError
|
||||
even when we replaced AssertionError with a subclass on the
|
||||
python level
|
||||
|
||||
- factory discovery no longer fails with magic global callables
|
||||
that provide no sane __code__ object (mock.call for example)
|
||||
|
||||
|
|
|
@ -777,6 +777,11 @@ def raises(ExpectedException, *args, **kwargs):
|
|||
<ExceptionInfo ...>
|
||||
"""
|
||||
__tracebackhide__ = True
|
||||
if ExpectedException is AssertionError:
|
||||
# we want to catch a AssertionError
|
||||
# replace our subclass with the builtin one
|
||||
# see https://bitbucket.org/hpk42/pytest/issue/176/pytestraises
|
||||
from exceptions import AssertionError as ExpectedException
|
||||
|
||||
if not args:
|
||||
return RaisesContext(ExpectedException)
|
||||
|
|
|
@ -1419,6 +1419,14 @@ class TestRaises:
|
|||
except pytest.raises.Exception:
|
||||
pass
|
||||
|
||||
def test_raises_flip_builtin_AssertionError(self):
|
||||
# we replace AssertionError on python level
|
||||
# however c code might still raise the builtin one
|
||||
import exceptions
|
||||
pytest.raises(AssertionError,"""
|
||||
raise exceptions.AssertionError
|
||||
""")
|
||||
|
||||
@pytest.mark.skipif('sys.version < "2.5"')
|
||||
def test_raises_as_contextmanager(self, testdir):
|
||||
testdir.makepyfile("""
|
||||
|
|
Loading…
Reference in New Issue