[pypy-commit] pypy py3k: Port the generator applevel tests to py3k
rguillebert
noreply at buildbot.pypy.org
Sat Jan 21 10:25:39 CET 2012
Author: Romain Guillebert <romain.py at gmail.com>
Branch: py3k
Changeset: r51560:328a6033f00a
Date: 2012-01-21 10:25 +0100
http://bitbucket.org/pypy/pypy/changeset/328a6033f00a/
Log: Port the generator applevel tests to py3k
diff --git a/pypy/interpreter/test/test_generator.py b/pypy/interpreter/test/test_generator.py
--- a/pypy/interpreter/test/test_generator.py
+++ b/pypy/interpreter/test/test_generator.py
@@ -3,14 +3,14 @@
def test_generator(self):
def f():
yield 1
- assert f().next() == 1
+ assert next(f()) == 1
def test_generator2(self):
def f():
yield 1
g = f()
- assert g.next() == 1
- raises(StopIteration, g.next)
+ assert next(g) == 1
+ raises(StopIteration, next, g)
def test_attributes(self):
def f():
@@ -21,9 +21,9 @@
assert g.__name__ == 'f'
assert g.gi_frame is not None
assert not g.gi_running
- g.next()
+ next(g)
assert not g.gi_running
- raises(StopIteration, g.next)
+ raises(StopIteration, next, g)
assert not g.gi_running
assert g.gi_frame is None
assert g.gi_code is f.func_code
@@ -43,13 +43,13 @@
def test_generator5(self):
d = {}
- exec """if 1:
+ exec("""if 1:
def f():
v = (yield )
yield v
g = f()
- g.next()
- """ in d
+ next(g)
+ """, d, d)
g = d['g']
assert g.send(42) == 42
@@ -73,13 +73,13 @@
except:
yield 3
g = f()
- assert g.next() == 1
+ assert next(g) == 1
assert g.throw(NameError("Error")) == 3
- raises(StopIteration, g.next)
+ raises(StopIteration, next, g)
def test_throw4(self):
d = {}
- exec """if 1:
+ exec("""if 1:
def f():
try:
yield 1
@@ -87,12 +87,12 @@
except:
yield 3
g = f()
- """ in d
+ """, d, d)
g = d['g']
- assert g.next() == 1
- assert g.next() == 2
+ assert next(g) == 1
+ assert next(g) == 2
assert g.throw(NameError("Error")) == 3
- raises(StopIteration, g.next)
+ raises(StopIteration, next, g)
def test_throw5(self):
def f():
@@ -105,7 +105,7 @@
except:
pass
g = f()
- g.next()
+ next(g)
# String exceptions are not allowed anymore
raises(TypeError, g.throw, "Error")
assert g.throw(Exception) == 3
@@ -158,9 +158,9 @@
def f():
yield 1
g = f()
- res = g.next()
+ res = next(g)
assert res == 1
- raises(StopIteration, g.next)
+ raises(StopIteration, next, g)
raises(NameError, g.throw, NameError)
def test_close(self):
@@ -176,7 +176,7 @@
except GeneratorExit:
raise StopIteration
g = f()
- g.next()
+ next(g)
assert g.close() is None
def test_close3(self):
@@ -186,7 +186,7 @@
except GeneratorExit:
raise NameError
g = f()
- g.next()
+ next(g)
raises(NameError, g.close)
def test_close_fail(self):
@@ -196,22 +196,22 @@
except GeneratorExit:
yield 2
g = f()
- g.next()
+ next(g)
raises(RuntimeError, g.close)
def test_close_on_collect(self):
## we need to exec it, else it won't run on python2.4
d = {}
- exec """
+ exec("""
def f():
try:
yield
finally:
f.x = 42
- """.strip() in d
+ """.strip(), d, d)
g = d['f']()
- g.next()
+ next(g)
del g
import gc
gc.collect()
@@ -233,30 +233,31 @@
def test_generator_propagate_stopiteration(self):
def f():
it = iter([1])
- while 1: yield it.next()
+ while 1: yield next(it)
g = f()
assert [x for x in g] == [1]
def test_generator_restart(self):
def g():
- i = me.next()
+ i = next(me)
yield i
me = g()
- raises(ValueError, me.next)
+ raises(ValueError, next, me)
def test_generator_expression(self):
- exec "res = sum(i*i for i in range(5))"
- assert res == 30
+ d = {}
+ exec("res = sum(i*i for i in range(5))", d, d)
+ assert d['res'] == 30
def test_generator_expression_2(self):
d = {}
- exec """
+ exec("""
def f():
total = sum(i for i in [x for x in z])
return total, x
z = [1, 2, 7]
res = f()
-""" in d
+""", d, d)
assert d['res'] == (10, 7)
def test_repr(self):
@@ -278,4 +279,4 @@
def f():
yield 1
raise StopIteration
- assert tuple(f()) == (1,)
\ No newline at end of file
+ assert tuple(f()) == (1,)
More information about the pypy-commit
mailing list