PythonExtra/tests/basics/generator_throw_nested.py
Jim Mussared 1f4b607116 tests: Add tests for generator throw and yield-from with exc handlers.
This commit adds a generator test for throwing into a nested exception, and
one when using yield-from with a pending exception cleanup.  Both these
tests currently fail on the native emitter, and are simplified versions of
native test failures from uasyncio in #5332.
2020-01-27 13:16:06 +11:00

34 lines
734 B
Python

# Tests that the correct nested exception handler is used when
# throwing into a generator (previously failed on native emitter).
def gen():
try:
yield 1
try:
yield 2
try:
yield 3
except Exception:
yield 4
print(0)
yield 5
except Exception:
yield 6
print(1)
yield 7
except Exception:
yield 8
print(2)
yield 9
for i in range(1, 10):
g = gen()
try:
for _ in range(i):
print(next(g))
print(g.throw(ValueError))
except ValueError:
print('ValueError')
except StopIteration:
print('StopIteration')