[pypy-svn] pypy fast-forward: Add test for generator attributes: gi_running and gi_code.
amauryfa
commits-noreply at bitbucket.org
Tue Jan 4 14:54:01 CET 2011
Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: fast-forward
Changeset: r40382:ff54b24a65ea
Date: 2011-01-04 14:22 +0100
http://bitbucket.org/pypy/pypy/changeset/ff54b24a65ea/
Log: Add test for generator attributes: gi_running and gi_code. Fix a
segfault in CPython test suite.
diff --git a/pypy/interpreter/generator.py b/pypy/interpreter/generator.py
--- a/pypy/interpreter/generator.py
+++ b/pypy/interpreter/generator.py
@@ -11,6 +11,7 @@
def __init__(self, frame):
self.space = frame.space
self.frame = frame # turned into None when frame_finished_execution
+ self.pycode = frame.pycode
self.running = False
def descr__repr__(self, space):
@@ -133,7 +134,7 @@
return space.w_None
def descr_gi_code(space, self):
- return self.frame.pycode
+ return self.pycode
def descr__name__(space, self):
code_name = self.frame.pycode.co_name
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
@@ -5,14 +5,6 @@
yield 1
assert f().next() == 1
- def test_attributes(self):
- def f():
- yield 1
- g = f()
- assert g.gi_code is f.func_code
- assert g.__name__ == 'f'
- assert g.gi_frame is not None
-
def test_generator2(self):
def f():
yield 1
@@ -20,6 +12,22 @@
assert g.next() == 1
raises(StopIteration, g.next)
+ def test_attributes(self):
+ def f():
+ yield 1
+ assert g.gi_running
+ g = f()
+ assert g.gi_code is f.func_code
+ assert g.__name__ == 'f'
+ assert g.gi_frame is not None
+ assert not g.gi_running
+ g.next()
+ assert not g.gi_running
+ raises(StopIteration, g.next)
+ assert not g.gi_running
+ assert g.gi_frame is None
+ assert g.gi_code is f.func_code
+
def test_generator3(self):
def f():
yield 1
More information about the Pypy-commit
mailing list