49 lines
1.1 KiB
Plaintext
Raw Permalink Normal View History

== Why is this an issue?
Using ``++pytest.raises++`` or ``++unittest.TestCase.assertRaises++`` will assert that an exception is raised in the following block. Ending such block in an assertion means that the test can succeed with that last assertion never being executed.
=== Noncompliant code example
[source,python]
----
import pytest
def foo(): return 1 / 0
def bar(): return 42
def test_something():
with pytest.raises(ZeroDivisionError):
foo()
assert bar() == 42 # Noncompliant
----
=== Compliant solution
[source,python]
----
import pytest
def foo(): return 1 / 0
def bar(): return 42
def test_something():
with pytest.raises(ZeroDivisionError):
foo()
assert bar() == 42
----
== Resources
* https://docs.python.org/3/library/unittest.html#unittest.TestCase.assertRaises[Unittest: assertRaises]
* https://docs.pytest.org/en/stable/assert.html#assertions-about-expected-exceptions[Pytest: assertions about expected exceptions]
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
include::../message.adoc[]
include::../highlighting.adoc[]
endif::env-github,rspecator-view[]