8000 gh-122864: Fix a ``test_funcattrs.test___builtins__`` when executing … · python/cpython@8fbf10d · GitHub
[go: up one dir, main page]

Skip to content

Commit 8fbf10d

Browse files
mbyrnepr2vstinner
andauthored
gh-122864: Fix a test_funcattrs.test___builtins__ when executing directly (#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. --------- Co-authored-by: Victor Stinner <vstinner@python.org>
1 parent 6737333 commit 8fbf10d

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

Lib/test/test_funcattrs.py

Lines changed: 7 additions & 2 deletions
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)
0