Author: Armin Rigo <ar...@tunes.org>
Branch: py3.5
Changeset: r89014:3a45764f6ee1
Date: 2016-12-12 12:53 +0100
http://bitbucket.org/pypy/pypy/changeset/3a45764f6ee1/

Log:    Test for missing the internal StopIteration

diff --git a/pypy/interpreter/test/test_pyframe.py 
b/pypy/interpreter/test/test_pyframe.py
--- a/pypy/interpreter/test/test_pyframe.py
+++ b/pypy/interpreter/test/test_pyframe.py
@@ -645,6 +645,26 @@
         sys.settrace(None)
         assert seen == ['call', 'exception', 'return']
 
+    def test_generator_trace_stopiteration(self):
+        import sys
+        def f():
+            yield 5
+        gen = f()
+        assert next(gen) == 5
+        seen = []
+        def trace_func(frame, event, *args):
+            print('TRACE:', frame, event, args)
+            seen.append(event)
+            return trace_func
+        def g():
+            for x in gen:
+                never_entered
+        sys.settrace(trace_func)
+        g()
+        sys.settrace(None)
+        print('seen:', seen)
+        assert seen == ['call', 'line', 'call', 'return', 'exception', 
'return']
+
     def test_clear_locals(self):
         def make_frames():
             def outer():
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to