tests/basics: Add tests to test repeated throw into the same generator.

Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
Damien George 2024-06-06 14:25:18 +10:00
parent 038125be79
commit 0619f261a8
2 changed files with 38 additions and 0 deletions

View File

@ -0,0 +1,22 @@
# Test throwing repeatedly into the same generator, where that generator
# is yielding from another generator.
def yielder():
yield 4
yield 5
def gen():
while True:
try:
print("gen received:", (yield from yielder()))
except ValueError as exc:
print(repr(exc))
g = gen()
for i in range(2):
print("send, got:", g.send(None))
print("throw, got:", g.throw(ValueError("a", i)))
print("throw, got:", g.throw(ValueError("b", i)))

View File

@ -0,0 +1,16 @@
# Test throwing repeatedly into the same generator.
def gen():
while True:
try:
print("gen received:", (yield "value"))
except ValueError as exc:
print(repr(exc))
g = gen()
for i in range(2):
print("send, got:", g.send(None))
print("throw, got:", g.throw(ValueError("a", i)))
print("throw, got:", g.throw(ValueError("b", i)))