From 0619f261a82ead92bbd05ba387ebb3292ae62de9 Mon Sep 17 00:00:00 2001 From: Damien George Date: Thu, 6 Jun 2024 14:25:18 +1000 Subject: [PATCH] tests/basics: Add tests to test repeated throw into the same generator. Signed-off-by: Damien George --- tests/basics/gen_yield_from_throw_repeat.py | 22 +++++++++++++++++++++ tests/basics/generator_throw_repeat.py | 16 +++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 tests/basics/gen_yield_from_throw_repeat.py create mode 100644 tests/basics/generator_throw_repeat.py 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)))