self.fail("No exception raised")
def test_class_cause_nonexception_result(self):
- class ConstructsNone(BaseException):
- @classmethod
+ # See https://github.com/python/cpython/issues/140530.
+ class ConstructMortal(BaseException):
def __new__(*args, **kwargs):
- return None
- try:
- raise IndexError from ConstructsNone
- except TypeError as e:
- self.assertIn("should have returned an instance of BaseException", str(e))
- except IndexError:
- self.fail("Wrong kind of exception raised")
- else:
- self.fail("No exception raised")
+ return ["mortal value"]
+
+ msg = ".*should have returned an instance of BaseException.*"
+ with self.assertRaisesRegex(TypeError, msg):
+ raise IndexError from ConstructMortal
def test_instance_cause(self):
cause = KeyError()
"calling %R should have returned an instance of "
"BaseException, not %R",
cause, Py_TYPE(fixed_cause));
+ Py_DECREF(fixed_cause);
goto raise_error;
}
Py_DECREF(cause);