]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.13] gh-118899: Add tests for `NotImplemented` attribute access (GH-118902) (#118968)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sun, 12 May 2024 14:23:45 +0000 (16:23 +0200)
committerGitHub <noreply@github.com>
Sun, 12 May 2024 14:23:45 +0000 (14:23 +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 230789f29ff788d4f63749be40ea7e5d76e1c508..034c83a19fd08515091ea74f982798e5f5990f6b 100644 (file)
@@ -2139,6 +2139,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):