From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Sun, 12 May 2024 14:23:45 +0000 (+0200) Subject: [3.13] gh-118899: Add tests for `NotImplemented` attribute access (GH-118902) (#118968) X-Git-Tag: v3.13.0b2~227 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6e855b30a9e63ece55c595dc3ee3fbd520aafa79;p=thirdparty%2FPython%2Fcpython.git [3.13] gh-118899: Add tests for `NotImplemented` attribute access (GH-118902) (#118968) gh-118899: Add tests for `NotImplemented` attribute access (GH-118902) (cherry picked from commit ec1398e117fb142cc830495503dbdbb1ddafe941) Co-authored-by: Nikita Sobolev --- diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py index 230789f29ff7..034c83a19fd0 100644 --- a/Lib/test/test_builtin.py +++ b/Lib/test/test_builtin.py @@ -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):