summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2024-05-12 14:22:58 (GMT)
committerGitHub <noreply@github.com>2024-05-12 14:22:58 (GMT)
commit76dc1bf5be3b360f7d8c476accb0d8d53c8dfb08 (patch)
tree4017eb5259525b0dad2e37f09b63eba0318646f2 /Lib/test
parenta0786bcb748ac64a051f6c74f298b8b91852ee4f (diff)
downloadcpython-76dc1bf5be3b360f7d8c476accb0d8d53c8dfb08.zip
cpython-76dc1bf5be3b360f7d8c476accb0d8d53c8dfb08.tar.gz
cpython-76dc1bf5be3b360f7d8c476accb0d8d53c8dfb08.tar.bz2
[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 <mail@sobolevn.me>
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_builtin.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index 211dd89..c71c568 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -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):