]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.12] gh-118899: Add tests for `NotImplemented` attribute access (GH-118902) (#118969)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sun, 12 May 2024 14:22:58 +0000 (16:22 +0200)
committerGitHub <noreply@github.com>
Sun, 12 May 2024 14:22:58 +0000 (14:22 +0000)
gh-118899: Add tests for `NotImplemented` attribute access (GH-118902)
(cherry picked from commit ec1398e117fb142cc830495503dbdbb1ddafe941)

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
Lib/test/test_builtin.py

index 211dd89ea4851ced660e75dded8e5465b00e7123..c71c56877f690f147f95d9653de5595d36a976dc 100644 (file)
@@ -2091,6 +2091,24 @@ class BuiltinTest(unittest.TestCase):
         with self.assertWarns(DeprecationWarning):
             self.assertFalse(not NotImplemented)
 
+    def test_singleton_attribute_access(self):
+        for singleton in (NotImplemented, Ellipsis):
+            with self.subTest(singleton):
+                self.assertIs(type(singleton), singleton.__class__)
+                self.assertIs(type(singleton).__class__, type)
+
+                # Missing instance attributes:
+                with self.assertRaises(AttributeError):
+                    singleton.prop = 1
+                with self.assertRaises(AttributeError):
+                    singleton.prop
+
+                # Missing class attributes:
+                with self.assertRaises(TypeError):
+                    type(singleton).prop = 1
+                with self.assertRaises(AttributeError):
+                    type(singleton).prop
+
 
 class TestBreakpoint(unittest.TestCase):
     def setUp(self):