New issue 580: OutcomeException should not be a subclass of Exception
https://bitbucket.org/hpk42/pytest/issue/580/outcomeexception-should-not-be-a-subclass
thiefmaster:
Imagine this code:
```
def blackbox(callback, arg):
# this is assumed to be application code
try:
callback(arg)
except Exception:
pass
def test_callback():
def cb(x):
if not x:
import pytest
pytest.fail('foo')
blackbox(cb, True)
blackbox(cb, False)
```
The testcase will pass since `except Exception` will catch the `Failed` raised
by `pytest.fail`. However, I don't think there is *any* valid use-case for
application code to prevent a testcase failure from propagating to the test
runner.
A more practical example where this is a major issue is monkeypatching a
library function to fail when called. For example, one might want to
monkeypatch `smtplib.SMTP.connect` to fail when code tries to send an email
unexpectedly - but chances are good that the application is wrapping that code
in a `try...except Exception` block to prevent an email sending failure from
breaking things (e.g. because the email is not very important). So now the
`pytest.fail` called in the monkeypatched method will never propagate since
it's caught by application code.
_______________________________________________
pytest-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pytest-commit