[pypy-commit] pypy flowoperators: Fix FlowObjSpace.import_from()
rlamy
noreply at buildbot.pypy.org
Sat Jul 6 02:47:28 CEST 2013
Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: flowoperators
Changeset: r65228:fd3bd5cf5c91
Date: 2013-07-06 01:16 +0200
http://bitbucket.org/pypy/pypy/changeset/fd3bd5cf5c91/
Log: Fix FlowObjSpace.import_from()
diff --git a/rpython/flowspace/objspace.py b/rpython/flowspace/objspace.py
--- a/rpython/flowspace/objspace.py
+++ b/rpython/flowspace/objspace.py
@@ -19,7 +19,7 @@
from rpython.flowspace.pygraph import PyGraph
from rpython.flowspace.specialcase import SPECIAL_CASES
from rpython.rlib.unroll import unrolling_iterable, _unroller
-from rpython.rlib import rstackovf, rarithmetic
+from rpython.rlib import rstackovf
from rpython.rlib.rarithmetic import is_valid_int
@@ -323,10 +323,10 @@
assert isinstance(w_name, Constant)
# handle sys
if w_module in self.not_really_const:
- const_w = self.not_really_const[w_obj]
+ const_w = self.not_really_const[w_module]
if w_name not in const_w:
return self.frame.do_operation_with_implicit_exceptions('getattr',
- w_obj, w_name)
+ w_module, w_name)
try:
return self.wrap(getattr(w_module.value, w_name.value))
except AttributeError:
diff --git a/rpython/flowspace/test/test_objspace.py b/rpython/flowspace/test/test_objspace.py
--- a/rpython/flowspace/test/test_objspace.py
+++ b/rpython/flowspace/test/test_objspace.py
@@ -1,6 +1,6 @@
from __future__ import with_statement
import new
-import py, sys
+import py
from contextlib import contextmanager
from rpython.flowspace.model import Constant, mkentrymap, c_last_exception
@@ -1177,6 +1177,20 @@
graph = self.codetest(f)
assert 'setitem' in self.all_operations(graph)
+ def test_sys_getattr(self):
+ def f():
+ import sys
+ return sys.modules
+ graph = self.codetest(f)
+ assert 'getattr' in self.all_operations(graph)
+
+ def test_sys_import_from(self):
+ def f():
+ from sys import modules
+ return modules
+ graph = self.codetest(f)
+ assert 'getattr' in self.all_operations(graph)
+
DATA = {'x': 5,
'y': 6}
More information about the pypy-commit
mailing list