diff options
author | Damien George <damien.p.george@gmail.com> | 2019-02-21 14:07:44 +1100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2019-05-09 13:40:28 +1000 |
commit | dac9d4767175541aaaaf0e2f873322f5f1db3b0c (patch) | |
tree | 7ea2c8dcf3a26eaa1928f8a22b6800169dea7efc /tests | |
parent | 29865e3e58a89eace83fc1910221724363f55d64 (diff) |
py/objgenerator: Fix handling of None passed as 2nd arg to throw().
Fixes issue #4527.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/basics/gen_yield_from_throw.py | 22 | ||||
-rw-r--r-- | tests/basics/generator_throw.py | 14 |
2 files changed, 32 insertions, 4 deletions
diff --git a/tests/basics/gen_yield_from_throw.py b/tests/basics/gen_yield_from_throw.py index 703158f4d..804c53dda 100644 --- a/tests/basics/gen_yield_from_throw.py +++ b/tests/basics/gen_yield_from_throw.py @@ -1,8 +1,8 @@ def gen(): try: yield 1 - except ValueError: - print("got ValueError from upstream!") + except ValueError as e: + print("got ValueError from upstream!", repr(e.args)) yield "str1" raise TypeError @@ -16,3 +16,21 @@ try: print(next(g)) except TypeError: print("got TypeError from downstream!") + +# 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!") diff --git a/tests/basics/generator_throw.py b/tests/basics/generator_throw.py index bf5ff33a2..1b43c125e 100644 --- a/tests/basics/generator_throw.py +++ b/tests/basics/generator_throw.py @@ -28,8 +28,8 @@ except StopIteration: def gen(): try: yield 123 - except GeneratorExit: - print('GeneratorExit') + except GeneratorExit as e: + print('GeneratorExit', repr(e.args)) yield 456 # thrown a class @@ -41,3 +41,13 @@ print(g.throw(GeneratorExit)) g = gen() print(next(g)) print(g.throw(GeneratorExit())) + +# 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))) |