https://github.com/python/cpython/commit/76dc1bf5be3b360f7d8c476accb0d8d53c8dfb08
commit: 76dc1bf5be3b360f7d8c476accb0d8d53c8dfb08
branch: 3.12
author: Miss Islington (bot) <[email protected]>
committer: sobolevn <[email protected]>
date: 2024-05-12T14:22:58Z
summary:

[3.12] gh-118899: Add tests for `NotImplemented` attribute access (GH-118902) 
(#118969)

gh-118899: Add tests for `NotImplemented` attribute access (GH-118902)
(cherry picked from commit ec1398e117fb142cc830495503dbdbb1ddafe941)

Co-authored-by: Nikita Sobolev <[email protected]>

files:
M Lib/test/test_builtin.py

diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index 211dd89ea4851c..c71c56877f690f 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -2091,6 +2091,24 @@ def test_warning_notimplemented(self):
         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):

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]

Reply via email to