]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-122864: Fix a ``test_funcattrs.test___builtins__`` when executing directly (#124845)
authorMark Byrne <31762852+mbyrnepr2@users.noreply.github.com>
Wed, 2 Oct 2024 09:58:39 +0000 (11:58 +0200)
committerGitHub <noreply@github.com>
Wed, 2 Oct 2024 09:58:39 +0000 (12:58 +0300)
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>
Lib/test/test_funcattrs.py

index b3fc5ad42e7fde472f6c2768fee8d5d6c739db3f..d919d62613ea7cee69bcf590857580525ee7fae9 100644 (file)
@@ -98,7 +98,12 @@ class FunctionPropertiesTest(FuncAttrsTest):
                              (AttributeError, TypeError))
 
     def test___builtins__(self):
-        self.assertIs(self.b.__builtins__, __builtins__)
+        if __name__ == "__main__":
+            builtins_dict = __builtins__.__dict__
+        else:
+            builtins_dict = __builtins__
+
+        self.assertIs(self.b.__builtins__, builtins_dict)
         self.cannot_set_attr(self.b, '__builtins__', 2,
                              (AttributeError, TypeError))
 
@@ -108,7 +113,7 @@ class FunctionPropertiesTest(FuncAttrsTest):
         ns = {}
         func2 = type(func)(func.__code__, ns)
         self.assertIs(func2.__globals__, ns)
-        self.assertIs(func2.__builtins__, __builtins__)
+        self.assertIs(func2.__builtins__, builtins_dict)
 
         # Make sure that the function actually works.
         self.assertEqual(func2("abc"), 3)