Skip to content

Commit aa6cf9b

Browse files
miss-islingtonmbyrnepr2vstinner
authored
[3.13] gh-122864: Fix a test_funcattrs.test___builtins__ when executing directly (GH-124845) (#124884)
gh-122864: Fix a ``test_funcattrs.test___builtins__`` when executing directly (GH-124845) Previously when executing ``test_functattrs.test___builtins__`` directly, it failed because the fact, that ``__builtins__`` is refers to the built-in module ``builtins`` while it's expects a ``__builtins__.__dict__``. But when this test is being run from another module, then ``__builtins__`` is refers to ``builtins.__dict__``. Now this part of the behaviour is covered. --------- (cherry picked from commit 8fbf10d) Co-authored-by: Mark Byrne <[email protected]> Co-authored-by: Victor Stinner <[email protected]>
1 parent 45dedab commit aa6cf9b

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

Lib/test/test_funcattrs.py

+7-2
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,12 @@ def test___globals__(self):
9898
(AttributeError, TypeError))
9999

100100
def test___builtins__(self):
101-
self.assertIs(self.b.__builtins__, __builtins__)
101+
if __name__ == "__main__":
102+
builtins_dict = __builtins__.__dict__
103+
else:
104+
builtins_dict = __builtins__
105+
106+
self.assertIs(self.b.__builtins__, builtins_dict)
102107
self.cannot_set_attr(self.b, '__builtins__', 2,
103108
(AttributeError, TypeError))
104109

@@ -108,7 +113,7 @@ def func(s): return len(s)
108113
ns = {}
109114
func2 = type(func)(func.__code__, ns)
110115
self.assertIs(func2.__globals__, ns)
111-
self.assertIs(func2.__builtins__, __builtins__)
116+
self.assertIs(func2.__builtins__, builtins_dict)
112117

113118
# Make sure that the function actually works.
114119
self.assertEqual(func2("abc"), 3)

0 commit comments

Comments
 (0)