Skip to content

Commit c675a59

Browse files
Merge pull request #526 from palaviv/assertRaises
Add assertRaises context manager to testutils
2 parents 7032de9 + b530733 commit c675a59

File tree

2 files changed

+21
-21
lines changed

2 files changed

+21
-21
lines changed

tests/snippets/set.py

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from testutils import assert_raises
1+
from testutils import assert_raises, assertRaises
22

33
assert set([1,2]) == set([1,2])
44
assert not set([1,2,3]) == set([1,2])
@@ -109,12 +109,8 @@ def __hash__(self):
109109
a = set([1,2,3])
110110
a |= set([3,4,5])
111111
assert a == set([1,2,3,4,5])
112-
try:
112+
with assertRaises(TypeError):
113113
a |= 1
114-
except TypeError:
115-
pass
116-
else:
117-
assert False, "TypeError not raised"
118114

119115
a = set([1,2,3])
120116
a.intersection_update([2,3,4,5])
@@ -124,12 +120,8 @@ def __hash__(self):
124120
a = set([1,2,3])
125121
a &= set([2,3,4,5])
126122
assert a == set([2,3])
127-
try:
123+
with assertRaises(TypeError):
128124
a &= 1
129-
except TypeError:
130-
pass
131-
else:
132-
assert False, "TypeError not raised"
133125

134126
a = set([1,2,3])
135127
a.difference_update([3,4,5])
@@ -139,12 +131,8 @@ def __hash__(self):
139131
a = set([1,2,3])
140132
a -= set([3,4,5])
141133
assert a == set([1,2])
142-
try:
134+
with assertRaises(TypeError):
143135
a -= 1
144-
except TypeError:
145-
pass
146-
else:
147-
assert False, "TypeError not raised"
148136

149137
a = set([1,2,3])
150138
a.symmetric_difference_update([3,4,5])
@@ -154,9 +142,5 @@ def __hash__(self):
154142
a = set([1,2,3])
155143
a ^= set([3,4,5])
156144
assert a == set([1,2,4,5])
157-
try:
145+
with assertRaises(TypeError):
158146
a ^= 1
159-
except TypeError:
160-
pass
161-
else:
162-
assert False, "TypeError not raised"

tests/snippets/testutils.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,19 @@ def assert_raises(exc_type, expr, msg=None):
1818
if msg is not None:
1919
failmsg += ': {!s}'.format(msg)
2020
assert False, failmsg
21+
22+
23+
class assertRaises:
24+
def __init__(self, expected):
25+
self.expected = expected
26+
27+
def __enter__(self):
28+
return self
29+
30+
def __exit__(self, exc_type, exc_val, exc_tb):
31+
if exc_type is None:
32+
failmsg = '{!s} was not raised'.format(self.expected.__name_)
33+
assert False, failmsg
34+
if not issubclass(exc_type, self.expected):
35+
return False
36+
return True

0 commit comments

Comments
 (0)