Skip to content

Commit ca09367

Browse files
committed
pytest.raises accept cutom message only when used as context manager
1 parent e6ff01a commit ca09367

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

_pytest/python.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1412,12 +1412,11 @@ def raises(expected_exception, *args, **kwargs):
14121412
elif not isclass(expected_exception):
14131413
raise TypeError(msg % type(expected_exception))
14141414

1415-
if "message" in kwargs:
1416-
message = kwargs.pop("message")
1417-
else:
1418-
message = "DID NOT RAISE {0}".format(expected_exception)
1415+
message = "DID NOT RAISE {0}".format(expected_exception)
14191416

14201417
if not args:
1418+
if "message" in kwargs:
1419+
message = kwargs.pop("message")
14211420
return RaisesContext(expected_exception, message)
14221421
elif isinstance(args[0], str):
14231422
code, = args

testing/python/raises.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,20 +76,23 @@ def test_no_raise_message(self):
7676
pytest.raises(ValueError, int, '0')
7777
except pytest.raises.Exception as e:
7878
assert e.msg == "DID NOT RAISE {0}".format(repr(ValueError))
79+
else:
80+
assert False, "Expected pytest.raises.Exception"
81+
7982
try:
8083
with pytest.raises(ValueError):
8184
pass
8285
except pytest.raises.Exception as e:
8386
assert e.msg == "DID NOT RAISE {0}".format(repr(ValueError))
87+
else:
88+
assert False, "Expected pytest.raises.Exception"
8489

8590
def test_costum_raise_message(self):
8691
message = "TEST_MESSAGE"
87-
try:
88-
pytest.raises(ValueError, int, '0', message=message)
89-
except pytest.raises.Exception as e:
90-
assert e.msg == message
9192
try:
9293
with pytest.raises(ValueError, message=message):
9394
pass
9495
except pytest.raises.Exception as e:
9596
assert e.msg == message
97+
else:
98+
assert False, "Expected pytest.raises.Exception"

0 commit comments

Comments
 (0)