diff options
Diffstat (limited to 'tests/basics/gen_yield_from_close.py')
-rw-r--r-- | tests/basics/gen_yield_from_close.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/basics/gen_yield_from_close.py b/tests/basics/gen_yield_from_close.py index 674e117a08..d66691ff9c 100644 --- a/tests/basics/gen_yield_from_close.py +++ b/tests/basics/gen_yield_from_close.py @@ -99,3 +99,25 @@ try: g.close() except RuntimeError: print('RuntimeError') + +# case where close is propagated up to a built-in iterator +def gen8(): + g = reversed([2, 1]) + yield from g +g = gen8() +print(next(g)) +g.close() + +# case with a user-defined close method +class Iter: + def __iter__(self): + return self + def __next__(self): + return 1 + def close(self): + print('close') +def gen9(): + yield from Iter() +g = gen9() +print(next(g)) +g.close() |