Browse Source
The three-argument form of `.throw()` is deprecated since CPython 3.12. So split out into separate tests (with .exp files) the parts of the generator tests that test more than one argument. Signed-off-by: Damien George <damien@micropython.org>pull/15134/head
Damien George
5 months ago
6 changed files with 69 additions and 28 deletions
@ -0,0 +1,34 @@ |
|||
# Test generator .throw() with multiple arguments. |
|||
# Using multiple arguments is deprecated since CPython 3.12. |
|||
|
|||
|
|||
def gen(): |
|||
try: |
|||
yield 1 |
|||
except ValueError as e: |
|||
print("got ValueError from upstream!", repr(e.args)) |
|||
yield "str1" |
|||
raise TypeError |
|||
|
|||
|
|||
def gen2(): |
|||
print((yield from gen())) |
|||
|
|||
|
|||
# Passing None as second argument to throw. |
|||
g = gen2() |
|||
print(next(g)) |
|||
print(g.throw(ValueError, None)) |
|||
try: |
|||
print(next(g)) |
|||
except TypeError: |
|||
print("got TypeError from downstream!") |
|||
|
|||
# Passing an exception instance as second argument to throw. |
|||
g = gen2() |
|||
print(next(g)) |
|||
print(g.throw(ValueError, ValueError(123))) |
|||
try: |
|||
print(next(g)) |
|||
except TypeError: |
|||
print("got TypeError from downstream!") |
@ -0,0 +1,8 @@ |
|||
1 |
|||
got ValueError from upstream! () |
|||
str1 |
|||
got TypeError from downstream! |
|||
1 |
|||
got ValueError from upstream! (123,) |
|||
str1 |
|||
got TypeError from downstream! |
@ -0,0 +1,21 @@ |
|||
# Test generator .throw() with multiple arguments. |
|||
# Using multiple arguments is deprecated since CPython 3.12. |
|||
|
|||
# Generator ignores a thrown GeneratorExit (this is allowed). |
|||
def gen(): |
|||
try: |
|||
yield 123 |
|||
except GeneratorExit as e: |
|||
print("GeneratorExit", repr(e.args)) |
|||
yield 456 |
|||
|
|||
|
|||
# Thrown an instance with None as second arg. |
|||
g = gen() |
|||
print(next(g)) |
|||
print(g.throw(GeneratorExit(), None)) |
|||
|
|||
# Thrown a class and instance. |
|||
g = gen() |
|||
print(next(g)) |
|||
print(g.throw(GeneratorExit, GeneratorExit(123))) |
@ -0,0 +1,6 @@ |
|||
123 |
|||
GeneratorExit () |
|||
456 |
|||
123 |
|||
GeneratorExit (123,) |
|||
456 |
Loading…
Reference in new issue