From 42863830be2d19c7dcdf7ccf1fa66168b1bdc13a Mon Sep 17 00:00:00 2001 From: stijn Date: Thu, 3 Jan 2019 15:19:42 +0100 Subject: py: Add optional support for 2-argument version of built-in next(). Configurable via MICROPY_PY_BUILTINS_NEXT2, disabled by default. --- tests/basics/builtin_next_arg2.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 tests/basics/builtin_next_arg2.py (limited to 'tests') diff --git a/tests/basics/builtin_next_arg2.py b/tests/basics/builtin_next_arg2.py new file mode 100644 index 000000000..b00155ec5 --- /dev/null +++ b/tests/basics/builtin_next_arg2.py @@ -0,0 +1,34 @@ +# test next(iter, default) + +try: + next(iter([]), 42) +except TypeError: # 2-argument version not supported + print('SKIP') + raise SystemExit + +print(next(iter([]), 42)) +print(next(iter(range(0)), 42)) +print(next((x for x in [0] if x == 1), 43)) + +def gen(): + yield 1 + yield 2 + +g = gen() +print(next(g, 42)) +print(next(g, 43)) +print(next(g, 44)) + +class Gen: + def __init__(self): + self.b = False + + def __next__(self): + if self.b: + raise StopIteration + self.b = True + return self.b + +g = Gen() +print(next(g, 44)) +print(next(g, 45)) -- cgit v1.2.3