Skip to content

Commit b00110f

Browse files
committed
[fix] assert_raises_regex(): Handle exceptions without message
1 parent b7b4168 commit b00110f

File tree

3 files changed

+22
-0
lines changed

3 files changed

+22
-0
lines changed

NEWS.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
News in asserts 0.8.1
22
=====================
33

4+
Bug Fixes
5+
---------
6+
7+
* `assert_raises_regex()`: Handle exceptions without any message correctly.
8+
49
News in asserts 0.8.0
510
=====================
611

asserts/__init__.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -833,6 +833,11 @@ def assert_raises_regex(exception, regex, msg_fmt="{msg}"):
833833

834834
def test(exc):
835835
compiled = re.compile(regex)
836+
if not exc.args:
837+
msg = "{} without message".format(exception.__name__)
838+
fail(msg_fmt.format(
839+
msg=msg, text=None, pattern=compiled.pattern,
840+
exc_type=exception, exc_name=exception.__name__))
836841
text = exc.args[0]
837842
if not compiled.search(text):
838843
msg = "{!r} does not match {!r}".format(text, compiled.pattern)

test_asserts.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -806,6 +806,18 @@ def test_assert_raises_regex__exception_not_raised__custom_message(self):
806806
with assert_raises_regex(KeyError, r"test", msg_fmt=msg_fmt):
807807
pass
808808

809+
def test_assert_raises_regex__no_message__default_message(self):
810+
with _assert_raises_assertion("KeyError without message"):
811+
with assert_raises_regex(KeyError, r"test"):
812+
raise KeyError()
813+
814+
def test_assert_raises_regex__no_message__custom_message(self):
815+
expected = "KeyError without message;KeyError;KeyError;None;test"
816+
with _assert_raises_assertion(expected):
817+
msg_fmt = "{msg};{exc_type.__name__};{exc_name};{text!r};{pattern}"
818+
with assert_raises_regex(KeyError, r"test", msg_fmt=msg_fmt):
819+
raise KeyError()
820+
809821
def test_assert_raises_regex__wrong_exception_raised(self):
810822
try:
811823
with assert_raises_regex(IndexError, "test message"):

0 commit comments

Comments
 (0)