diff options
author | Jim Mussared <jim.mussared@gmail.com> | 2020-01-24 18:07:32 +1100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2020-01-27 13:16:06 +1100 |
commit | 1f4b607116ea0f06111847510ba5b1cd8080bf7f (patch) | |
tree | 6704a2a23a725deb22e8dd73d7b35aefc2b299e4 /tests/basics/generator_throw_nested.py | |
parent | d89ed3e62b152174c3eb5c96713e9b983b11f7ed (diff) | |
download | micropython-1f4b607116ea0f06111847510ba5b1cd8080bf7f.tar.gz micropython-1f4b607116ea0f06111847510ba5b1cd8080bf7f.zip |
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.
Diffstat (limited to 'tests/basics/generator_throw_nested.py')
-rw-r--r-- | tests/basics/generator_throw_nested.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/basics/generator_throw_nested.py b/tests/basics/generator_throw_nested.py new file mode 100644 index 0000000000..5ef1668788 --- /dev/null +++ b/tests/basics/generator_throw_nested.py @@ -0,0 +1,33 @@ +# 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') |