summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_builtin.py
diff options
context:
space:
mode:
authorMichael Droettboom <mdboom@gmail.com>2022-08-15 17:39:06 (GMT)
committerGitHub <noreply@github.com>2022-08-15 17:39:06 (GMT)
commit3adb4d864bb18a51334c922a732e5e3602799ba1 (patch)
treec66b373e1845d99fdd331948bbf906a34ed39c37 /Lib/test/test_builtin.py
parent914f6367a0d015986dafa7a9d542e24192753b6b (diff)
downloadcpython-3adb4d864bb18a51334c922a732e5e3602799ba1.zip
cpython-3adb4d864bb18a51334c922a732e5e3602799ba1.tar.gz
cpython-3adb4d864bb18a51334c922a732e5e3602799ba1.tar.bz2
GH-94808: Test __build_class__ inside non-dict __builtins__ (GH-95932)
Diffstat (limited to 'Lib/test/test_builtin.py')
-rw-r--r--Lib/test/test_builtin.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index d5eaf29..6fa5ea6 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -737,11 +737,6 @@ class BuiltinTest(unittest.TestCase):
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 @@ class BuiltinTest(unittest.TestCase):
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")