self.assertEqual(cm.exception.value.value, 2)
-class GeneratorThrowTest(unittest.TestCase):
-
- def test_exception_context_set(self):
- def f():
- try:
- raise KeyError('a')
- except Exception:
- yield
-
- gen = f()
- gen.send(None)
- with self.assertRaises(ValueError) as cm:
- gen.throw(ValueError)
- context = cm.exception.__context__
- self.assertEqual((type(context), context.args), (KeyError, ('a',)))
-
-
class YieldFromTests(unittest.TestCase):
def test_generator_gi_yieldfrom(self):
def a():
}
PyErr_Restore(typ, val, tb);
- if (gen->gi_exc_state.exc_type) {
- Py_INCREF(gen->gi_exc_state.exc_type);
- Py_XINCREF(gen->gi_exc_state.exc_value);
- Py_XINCREF(gen->gi_exc_state.exc_traceback);
- _PyErr_ChainExceptions(gen->gi_exc_state.exc_type, gen->gi_exc_state.exc_value, gen->gi_exc_state.exc_traceback);
- }
return gen_send_ex(gen, Py_None, 1, 0);
failed_throw: