diff --git a/tests/basics/gen_yield_from_throw_repeat.py b/tests/basics/gen_yield_from_throw_repeat.py new file mode 100644 index 0000000000..96636a6244 --- /dev/null +++ b/tests/basics/gen_yield_from_throw_repeat.py @@ -0,0 +1,22 @@ +# Test throwing repeatedly into the same generator, where that generator +# is yielding from another generator. + + +def yielder(): + yield 4 + yield 5 + + +def gen(): + while True: + try: + print("gen received:", (yield from yielder())) + except ValueError as exc: + print(repr(exc)) + + +g = gen() +for i in range(2): + print("send, got:", g.send(None)) + print("throw, got:", g.throw(ValueError("a", i))) + print("throw, got:", g.throw(ValueError("b", i))) diff --git a/tests/basics/generator_throw_repeat.py b/tests/basics/generator_throw_repeat.py new file mode 100644 index 0000000000..6d6ef60a9b --- /dev/null +++ b/tests/basics/generator_throw_repeat.py @@ -0,0 +1,16 @@ +# Test throwing repeatedly into the same generator. + + +def gen(): + while True: + try: + print("gen received:", (yield "value")) + except ValueError as exc: + print(repr(exc)) + + +g = gen() +for i in range(2): + print("send, got:", g.send(None)) + print("throw, got:", g.throw(ValueError("a", i))) + print("throw, got:", g.throw(ValueError("b", i)))