[pypy-svn] r78911 - in pypy/branch/fast-forward/pypy/module/_warnings: . test

afa at codespeak.net afa at codespeak.net
Tue Nov 9 12:04:10 CET 2010


Author: afa
Date: Tue Nov  9 12:04:08 2010
New Revision: 78911

Modified:
   pypy/branch/fast-forward/pypy/module/_warnings/interp_warnings.py
   pypy/branch/fast-forward/pypy/module/_warnings/test/test_warnings.py
Log:
Fix the lineno returned in a warning message


Modified: pypy/branch/fast-forward/pypy/module/_warnings/interp_warnings.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/_warnings/interp_warnings.py	(original)
+++ pypy/branch/fast-forward/pypy/module/_warnings/interp_warnings.py	Tue Nov  9 12:04:08 2010
@@ -77,7 +77,7 @@
         stacklevel -= 1
     if frame:
         w_globals = frame.w_globals
-        lineno = frame.f_lineno
+        lineno = frame.get_last_lineno()
     else:
         w_globals = space.sys.w_dict
         lineno = 1

Modified: pypy/branch/fast-forward/pypy/module/_warnings/test/test_warnings.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/_warnings/test/test_warnings.py	(original)
+++ pypy/branch/fast-forward/pypy/module/_warnings/test/test_warnings.py	Tue Nov  9 12:04:08 2010
@@ -18,6 +18,13 @@
         _warnings.warn("some message", DeprecationWarning)
         _warnings.warn("some message", Warning)
 
+    def test_lineno(self):
+        import warnings, _warnings, sys
+        with warnings.catch_warnings(record=True) as w:
+            _warnings.warn("some message", Warning)
+            lineno = sys._getframe().f_lineno - 1 # the line above
+            assert w[-1].lineno == lineno
+
     def test_warn_explicit(self):
         import _warnings
         _warnings.warn_explicit("some message", DeprecationWarning,



More information about the Pypy-commit mailing list