assert-raises-exception (B017)
Derived from the flake8-bugbear linter.
What it does
Checks for assertRaises
and pytest.raises
context managers that catch
Exception
or BaseException
.
Why is this bad?
These forms catch every Exception
, which can lead to tests passing even
if, e.g., the code under consideration raises a SyntaxError
or
IndentationError
.
Either assert for a more specific exception (builtin or custom), or use
assertRaisesRegex
or pytest.raises(..., match=<REGEX>)
respectively.
Example
Use instead: