New issue 767: pytest.raises() doesn't always return Exception instance in py26 https://bitbucket.org/pytest-dev/pytest/issue/767/pytestraises-doesnt-always-return
Eric Siegerman: Typically, the ExceptionInfo.value returned by _pytest.raises()_ (when the exception is indeed raised) is an Exception instance. But under certain conditions, it isn't. It looks as though it contains the Exception's _.args_, rather than the Exception itself. This happens when: * Python is 2.6 (I've tested with 2.6.6 and 2.6.9), and * The exception is one of Python's internal ones (I've tested with ZeroDivisionError, KeyError, and IOError; not sure whether this applies to others) * The exception was raised by the interpreter -- if I explicitly `raise KeyError("msg")`, for example, the test passes The attached tests demonstrate the problem -- and the more useful behaviour when you use vanilla _try/except_ instead of _pytest.raises()_. Under Python 2.6, the three _pytest.raises()_ cases fail; under Python 2.7 and 3.4, they pass. (The _try/except_ tests pass under all three Python versions.) _______________________________________________ pytest-commit mailing list pytest-commit@python.org https://mail.python.org/mailman/listinfo/pytest-commit