summaryrefslogtreecommitdiff
path: root/tests/basics
diff options
context:
space:
mode:
authorstijn <stijn@ignitron.net>2019-01-03 15:19:42 +0100
committerDamien George <damien.p.george@gmail.com>2019-01-27 13:01:28 +1100
commit42863830be2d19c7dcdf7ccf1fa66168b1bdc13a (patch)
tree7a79ea7a839754ea15f6a98d0273632135cae29c /tests/basics
parent51577629b2e91be3ec911167e0bd0311694166db (diff)
py: Add optional support for 2-argument version of built-in next().
Configurable via MICROPY_PY_BUILTINS_NEXT2, disabled by default.
Diffstat (limited to 'tests/basics')
-rw-r--r--tests/basics/builtin_next_arg2.py34
1 files changed, 34 insertions, 0 deletions
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))