|
47 | 47 | ) |
48 | 48 |
|
49 | 49 |
|
| 50 | +class Box: |
| 51 | + def __init__(self, initial_value): |
| 52 | + self.value = initial_value |
| 53 | + |
| 54 | + |
50 | 55 | class _DummyObject(object): |
51 | 56 | def __init__(self, value="x"): |
52 | 57 | self.value = value |
@@ -962,6 +967,29 @@ def test_assert_raises__wrong_exception_raised(self): |
962 | 967 | else: |
963 | 968 | fail("no exception raised") |
964 | 969 |
|
| 970 | + def test_assert_raises__add_test_called(self): |
| 971 | + called = Box(False) |
| 972 | + |
| 973 | + def extra_test(exc): |
| 974 | + assert_is_instance(exc, KeyError) |
| 975 | + called.value = True |
| 976 | + |
| 977 | + with assert_raises(KeyError) as context: |
| 978 | + context.add_test(extra_test) |
| 979 | + raise KeyError() |
| 980 | + assert_true(called.value, "extra_test() was not called") |
| 981 | + |
| 982 | + def test_assert_raises__add_test_not_called(self): |
| 983 | + called = Box(False) |
| 984 | + |
| 985 | + def extra_test(_): |
| 986 | + called.value = True |
| 987 | + |
| 988 | + with assert_raises(AssertionError): |
| 989 | + with assert_raises(KeyError) as context: |
| 990 | + context.add_test(extra_test) |
| 991 | + assert_false(called.value, "extra_test() was unexpectedly called") |
| 992 | + |
965 | 993 | # assert_raises_regex() |
966 | 994 |
|
967 | 995 | def test_assert_raises_regex__raises_right_exception(self): |
@@ -1166,6 +1194,30 @@ def test_assert_warns__warning_handler_deinstalled_on_failure(self): |
1166 | 1194 | warn("bar", UserWarning) |
1167 | 1195 | assert_equal(1, len(warnings)) |
1168 | 1196 |
|
| 1197 | + def test_assert_warns__add_test_called(self): |
| 1198 | + called = Box(False) |
| 1199 | + |
| 1200 | + def extra_test(warning): |
| 1201 | + assert_is(warning.category, UserWarning) |
| 1202 | + called.value = True |
| 1203 | + return True |
| 1204 | + |
| 1205 | + with assert_warns(UserWarning) as context: |
| 1206 | + context.add_test(extra_test) |
| 1207 | + warn("bar", UserWarning) |
| 1208 | + assert_true(called.value, "extra_test() was not called") |
| 1209 | + |
| 1210 | + def test_assert_warns__add_test_not_called(self): |
| 1211 | + called = Box(False) |
| 1212 | + |
| 1213 | + def extra_test(_): |
| 1214 | + called.value = True |
| 1215 | + |
| 1216 | + with assert_raises(AssertionError): |
| 1217 | + with assert_warns(UserWarning) as context: |
| 1218 | + context.add_test(extra_test) |
| 1219 | + assert_false(called.value, "extra_test() was unexpectedly called") |
| 1220 | + |
1169 | 1221 | # assert_warns_regex() |
1170 | 1222 |
|
1171 | 1223 | def test_assert_warns_regex__warned(self): |
|
0 commit comments