Author: Philip Jenvey <pjen...@underboss.org>
Branch: py3.3
Changeset: r72614:46c2f3dee4c1
Date: 2014-07-29 17:30 -0700
http://bitbucket.org/pypy/pypy/changeset/46c2f3dee4c1/

Log:    adjust impl details

diff --git a/lib-python/3/test/test_builtin.py 
b/lib-python/3/test/test_builtin.py
--- a/lib-python/3/test/test_builtin.py
+++ b/lib-python/3/test/test_builtin.py
@@ -15,7 +15,8 @@
 import unittest
 import warnings
 from operator import neg
-from test.support import TESTFN, unlink,  run_unittest, check_warnings
+from test.support import (
+    TESTFN, unlink,  run_unittest, check_warnings, check_impl_detail)
 try:
     import pty, signal
 except ImportError:
@@ -423,7 +424,9 @@
         try:
             raise IndexError
         except:
-            self.assertEqual(len(dir(sys.exc_info()[2])), 4)
+            methods = [meth for meth in dir(sys.exc_info()[2])
+                       if not meth.startswith('_')]
+            self.assertEqual(len(methods), 4)
 
         # test that object has a __dir__()
         self.assertEqual(sorted([].__dir__()), dir([]))
@@ -558,18 +561,21 @@
         self.assertEqual((g, l), ({'a': 1}, {'b': 2}))
 
     def test_exec_globals(self):
-        code = compile("print('Hello World!')", "", "exec")
-        # no builtin function
-        self.assertRaisesRegex(NameError, "name 'print' is not defined",
-                               exec, code, {'__builtins__': {}})
-        # __builtins__ must be a mapping type
-        self.assertRaises(TypeError,
-                          exec, code, {'__builtins__': 123})
+        if check_impl_detail():
+            # strict __builtins__ compliance (CPython)
+            code = compile("print('Hello World!')", "", "exec")
+            # no builtin function
+            self.assertRaisesRegex(NameError, "name 'print' is not defined",
+                                   exec, code, {'__builtins__': {}})
+            # __builtins__ must be a mapping type
+            self.assertRaises(TypeError,
+                              exec, code, {'__builtins__': 123})
 
-        # no __build_class__ function
-        code = compile("class A: pass", "", "exec")
-        self.assertRaisesRegex(NameError, "__build_class__ not found",
-                               exec, code, {'__builtins__': {}})
+            # no __build_class__ function
+            code = compile("class A: pass", "", "exec")
+            if True:
+                self.assertRaisesRegex(NameError, "__build_class__ not found",
+                                       exec, code, {'__builtins__': {}})
 
         class frozendict_error(Exception):
             pass
@@ -579,7 +585,7 @@
                 raise frozendict_error("frozendict is readonly")
 
         # read-only builtins
-        frozen_builtins = frozendict(__builtins__)
+        frozen_builtins = frozendict(builtins.__dict__)
         code = compile("__builtins__['superglobal']=2; print(superglobal)", 
"test", "exec")
         self.assertRaises(frozendict_error,
                           exec, code, {'__builtins__': frozen_builtins})
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to