Author: Philip Jenvey <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit