[Python-checkins] GH-94808: Test __build_class__ inside non-dict __builtins__ (GH-95932) (#96004)

pablogsal webhook-mailer at python.org
Thu Sep 8 07:17:24 EDT 2022


https://github.com/python/cpython/commit/0c443c2315cad48ee15b16bbe94e3a032dd14153
commit: 0c443c2315cad48ee15b16bbe94e3a032dd14153
branch: 3.11
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: pablogsal <Pablogsal at gmail.com>
date: 2022年09月08日T12:17:18+01:00
summary:
GH-94808: Test __build_class__ inside non-dict __builtins__ (GH-95932) (#96004)
(cherry picked from commit 3adb4d864bb18a51334c922a732e5e3602799ba1)
Co-authored-by: Michael Droettboom <mdboom at gmail.com>
Co-authored-by: Michael Droettboom <mdboom at gmail.com>
files:
M Lib/test/test_builtin.py
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index efa9459a5862..64c74ec2c59a 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -737,11 +737,6 @@ def test_exec_globals(self):
 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__': {}})
-
 class frozendict_error(Exception):
 pass
 
@@ -758,6 +753,15 @@ def __setitem__(self, key, value):
 self.assertRaises(frozendict_error,
 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
 namespace = frozendict({})
 code = compile("x=1", "test", "exec")


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /