mirror of
https://github.com/python/cpython.git
synced 2025-09-27 10:50:04 +00:00
GH-94808: Test __build_class__ inside non-dict __builtins__ (GH-95932) (#96004)
(cherry picked from commit 3adb4d864b
)
Co-authored-by: Michael Droettboom <mdboom@gmail.com>
Co-authored-by: Michael Droettboom <mdboom@gmail.com>
This commit is contained in:
parent
1276e73787
commit
0c443c2315
1 changed files with 9 additions and 5 deletions
|
@ -737,11 +737,6 @@ class BuiltinTest(unittest.TestCase):
|
||||||
self.assertRaises(TypeError,
|
self.assertRaises(TypeError,
|
||||||
exec, code, {'__builtins__': 123})
|
exec, code, {'__builtins__': 123})
|
||||||
|
|
||||||
# no __build_class__ function
|
|
||||||
code = compile("class A: pass", "", "exec")
|
|
||||||
self.assertRaisesRegex(NameError, "__build_class__ not found",
|
|
||||||
exec, code, {'__builtins__': {}})
|
|
||||||
|
|
||||||
class frozendict_error(Exception):
|
class frozendict_error(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -758,6 +753,15 @@ class BuiltinTest(unittest.TestCase):
|
||||||
self.assertRaises(frozendict_error,
|
self.assertRaises(frozendict_error,
|
||||||
exec, code, {'__builtins__': frozen_builtins})
|
exec, code, {'__builtins__': frozen_builtins})
|
||||||
|
|
||||||
|
# no __build_class__ function
|
||||||
|
code = compile("class A: pass", "", "exec")
|
||||||
|
self.assertRaisesRegex(NameError, "__build_class__ not found",
|
||||||
|
exec, code, {'__builtins__': {}})
|
||||||
|
# __build_class__ in a custom __builtins__
|
||||||
|
exec(code, {'__builtins__': frozen_builtins})
|
||||||
|
self.assertRaisesRegex(NameError, "__build_class__ not found",
|
||||||
|
exec, code, {'__builtins__': frozendict()})
|
||||||
|
|
||||||
# read-only globals
|
# read-only globals
|
||||||
namespace = frozendict({})
|
namespace = frozendict({})
|
||||||
code = compile("x=1", "test", "exec")
|
code = compile("x=1", "test", "exec")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue