[pypy-svn] r78944 - in pypy/branch/fast-forward/pypy/module/__builtin__: . test

afa at codespeak.net afa at codespeak.net
Tue Nov 9 22:43:05 CET 2010


Author: afa
Date: Tue Nov  9 22:43:04 2010
New Revision: 78944

Modified:
   pypy/branch/fast-forward/pypy/module/__builtin__/app_inspect.py
   pypy/branch/fast-forward/pypy/module/__builtin__/test/test_builtin.py
Log:
dir() is supposed to fail on broken modules with invalid __dict__


Modified: pypy/branch/fast-forward/pypy/module/__builtin__/app_inspect.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/__builtin__/app_inspect.py	(original)
+++ pypy/branch/fast-forward/pypy/module/__builtin__/app_inspect.py	Tue Nov  9 22:43:04 2010
@@ -64,7 +64,7 @@
 
     if isinstance(obj, types.ModuleType):
         try:
-            result = list(obj.__dict__.keys())
+            result = list(obj.__dict__)
             result.sort()
             return result
         except AttributeError:

Modified: pypy/branch/fast-forward/pypy/module/__builtin__/test/test_builtin.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/__builtin__/test/test_builtin.py	(original)
+++ pypy/branch/fast-forward/pypy/module/__builtin__/test/test_builtin.py	Tue Nov  9 22:43:04 2010
@@ -104,6 +104,12 @@
                 return 'a'    # not a list!
         raises(TypeError, eval, "dir()", {}, C())
 
+    def test_dir_broken_module(self):
+        import types
+        class Foo(types.ModuleType):
+            __dict__ = 8
+        raises(TypeError, dir, Foo("foo"))
+
     def test_format(self):
         assert format(4) == "4"
         assert format(10, "o") == "12"



More information about the Pypy-commit mailing list