summaryrefslogtreecommitdiffstatshomepage
path: root/tests/basics/gen-yield-from-close.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/basics/gen-yield-from-close.py')
-rw-r--r--tests/basics/gen-yield-from-close.py87
1 files changed, 0 insertions, 87 deletions
diff --git a/tests/basics/gen-yield-from-close.py b/tests/basics/gen-yield-from-close.py
deleted file mode 100644
index 7982d5c990..0000000000
--- a/tests/basics/gen-yield-from-close.py
+++ /dev/null
@@ -1,87 +0,0 @@
-def gen():
- yield 1
- yield 2
- yield 3
- yield 4
-
-def gen2():
- yield -1
- print((yield from gen()))
- yield 10
- yield 11
-
-g = gen2()
-print(next(g))
-print(next(g))
-g.close()
-try:
- print(next(g))
-except StopIteration:
- print("StopIteration")
-
-
-# Now variation of same test, but with leaf generator
-# swallowing GeneratorExit exception - its upstream gen
-# generator should still receive one.
-def gen3():
- yield 1
- try:
- yield 2
- except GeneratorExit:
- print("leaf caught GeneratorExit and swallowed it")
- return
- yield 3
- yield 4
-
-def gen4():
- yield -1
- try:
- print((yield from gen3()))
- except GeneratorExit:
- print("delegating caught GeneratorExit")
- raise
- yield 10
- yield 11
-
-g = gen4()
-print(next(g))
-print(next(g))
-print(next(g))
-g.close()
-try:
- print(next(g))
-except StopIteration:
- print("StopIteration")
-
-
-# Yet another variation - leaf generator gets GeneratorExit,
-# but raises StopIteration instead. This still should close chain properly.
-def gen5():
- yield 1
- try:
- yield 2
- except GeneratorExit:
- print("leaf caught GeneratorExit and raised StopIteration instead")
- raise StopIteration(123)
- yield 3
- yield 4
-
-def gen6():
- yield -1
- try:
- print((yield from gen5()))
- except GeneratorExit:
- print("delegating caught GeneratorExit")
- raise
- yield 10
- yield 11
-
-g = gen6()
-print(next(g))
-print(next(g))
-print(next(g))
-g.close()
-try:
- print(next(g))
-except StopIteration:
- print("StopIteration")