[pypy-svn] r16737 - in pypy/release/0.7.x/pypy/module/__builtin__: . test
arigo at codespeak.net
arigo at codespeak.net
Sat Aug 27 12:59:53 CEST 2005
Author: arigo
Date: Sat Aug 27 12:59:51 2005
New Revision: 16737
Modified:
pypy/release/0.7.x/pypy/module/__builtin__/app_inspect.py
pypy/release/0.7.x/pypy/module/__builtin__/test/test_builtin.py
Log:
Another corner case and fix for CPython's test_builtin.
Modified: pypy/release/0.7.x/pypy/module/__builtin__/app_inspect.py
==============================================================================
--- pypy/release/0.7.x/pypy/module/__builtin__/app_inspect.py (original)
+++ pypy/release/0.7.x/pypy/module/__builtin__/app_inspect.py Sat Aug 27 12:59:51 2005
@@ -106,6 +106,8 @@
% len(args))
if len(args) == 0:
local_names = _caller_locals().keys() # 2 stackframes away
+ if not isinstance(local_names, list):
+ raise TypeError("expected locals().keys() to be a list")
local_names.sort()
return local_names
@@ -116,6 +118,8 @@
if isinstance(obj, types.ModuleType):
try:
result = obj.__dict__.keys()
+ if not isinstance(result, list):
+ raise TypeError("expected __dict__.keys() to be a list")
result.sort()
return result
except AttributeError:
Modified: pypy/release/0.7.x/pypy/module/__builtin__/test/test_builtin.py
==============================================================================
--- pypy/release/0.7.x/pypy/module/__builtin__/test/test_builtin.py (original)
+++ pypy/release/0.7.x/pypy/module/__builtin__/test/test_builtin.py Sat Aug 27 12:59:51 2005
@@ -58,6 +58,14 @@
b = 67
assert nosp(dir(X)) == ['a', 'b', 'c']
+ def test_dir_in_broken_locals(self):
+ class C:
+ def __getitem__(self, item):
+ raise KeyError(item)
+ def keys(self):
+ return 'a' # not a list!
+ raises(TypeError, eval, "dir()", {}, C())
+
def test_vars(self):
def f():
return vars()
More information about the Pypy-commit
mailing list