Pytest Testing Idioms: Difference between revisions
Jump to navigation
Jump to search
Line 26: | Line 26: | ||
with pytest.raises(ValueError) as info: | with pytest.raises(ValueError) as info: | ||
my_method() | my_method() | ||
# important: interaction with 'info' must take place outside the with block | |||
assert info.value.args[0] == "some message" | assert info.value.args[0] == "some message" | ||
assert "some message" in str(info.value) | assert "some message" in str(info.value) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Also see: {{Internal|Python_Language_Exceptions#Overview|Python Language | Exceptions}} | Also see: {{Internal|Python_Language_Exceptions#Overview|Python Language | Exceptions}} |
Revision as of 01:34, 17 February 2022
External
Internal
Overview
Tested Code is Supposed to Throw Exception
import pytest
def test_something_that_should_throw_exception():
with pytest.raises(Exception) as info:
my_method()
If the tested code raises a more specific exception, you can use that instead:
def test_something_that_should_throw_exception():
with pytest.raises(ValueError) as info:
my_method()
This tests the exception arguments:
def test_something_that_should_throw_exception():
with pytest.raises(ValueError) as info:
my_method()
# important: interaction with 'info' must take place outside the with block
assert info.value.args[0] == "some message"
assert "some message" in str(info.value)
Also see: