summaryrefslogtreecommitdiff
path: root/tests/basics/gen_yield_from_throw3.py
diff options
context:
space:
mode:
authorDan Halbert <halbert@halwitz.org>2018-07-11 16:45:30 -0400
committerDan Halbert <halbert@halwitz.org>2018-07-11 16:45:30 -0400
commit7c219600a246d8956d0b23ea3f5d125a820e6b6a (patch)
tree4cf793a66284322d48a8f430815c31cd1c9ffa1d /tests/basics/gen_yield_from_throw3.py
parent4962468ffffac9ec4e36b2b1fc3f132516df3127 (diff)
parent25ae98f07cb3c4488cb955403dfe56b8bb8db6f0 (diff)
WIP: after merge; before testing
Diffstat (limited to 'tests/basics/gen_yield_from_throw3.py')
-rw-r--r--tests/basics/gen_yield_from_throw3.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/basics/gen_yield_from_throw3.py b/tests/basics/gen_yield_from_throw3.py
index 0f6c7c842..85b6f71f9 100644
--- a/tests/basics/gen_yield_from_throw3.py
+++ b/tests/basics/gen_yield_from_throw3.py
@@ -28,3 +28,30 @@ print(g.throw(123))
g = gen()
print(next(g))
print(g.throw(ZeroDivisionError))
+
+# this user-defined generator doesn't have a throw() method
+class Iter2:
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ return 1
+
+def gen2():
+ yield from Iter2()
+
+# the thrown ValueError is not intercepted by the user class
+g = gen2()
+print(next(g))
+try:
+ g.throw(ValueError)
+except:
+ print('ValueError')
+
+# the thrown 123 is not an exception so raises a TypeError
+g = gen2()
+print(next(g))
+try:
+ g.throw(123)
+except TypeError:
+ print('TypeError')