gh-118767: Make bool(NotImplemented) raise TypeError#118775
gh-118767: Make bool(NotImplemented) raise TypeError#118775JelleZijlstra merged 5 commits intopython:mainfrom
Conversation
| @@ -57,6 +57,9 @@ A small number of constants live in the built-in namespace. They are: | |||
| it currently evaluates as true, it will emit a :exc:`DeprecationWarning`. | |||
| It will raise a :exc:`TypeError` in a future version of Python. | |||
There was a problem hiding this comment.
This can be removed. And maybe the whole text of the note can be reworded.
There was a problem hiding this comment.
Thanks, I'll submit another PR addressing your comments.
| @@ -174,6 +174,9 @@ for more details. | |||
| it currently evaluates as true, it will emit a :exc:`DeprecationWarning`. | |||
| It will raise a :exc:`TypeError` in a future version of Python. | |||
| # a TypeError). | ||
| self.assertWarns(DeprecationWarning, bool, NotImplemented) | ||
| with self.assertWarns(DeprecationWarning): | ||
| self.assertRaises(TypeError, bool, NotImplemented) |
There was a problem hiding this comment.
The test should be renamed.
| self.assertWarns(DeprecationWarning, bool, NotImplemented) | ||
| with self.assertWarns(DeprecationWarning): | ||
| self.assertRaises(TypeError, bool, NotImplemented) | ||
| with self.assertRaises(TypeError): |
There was a problem hiding this comment.
TypeError is raised when you just call a function with wrong number of arguments, for example:
with self.assertRaises(TypeError):
self.assertEqual(NotImplemented)It is better to not use assertTrue() (which does not work here), but directly test the boolean value:
if NotImplemented:
passThere was a problem hiding this comment.
I'll also change it to use assertRaisesRegex to test that we're getting the expected TypeError and not some other one.
| @@ -0,0 +1,2 @@ | |||
| Using :data:`NotImplemented` in a boolean context now raises | |||
| :exc:`TypeError`. Contributed by Jelle Zijlstra in :gh:`118767`. | |||
There was a problem hiding this comment.
Isn't the link to the issue already included in the changelog?
There was a problem hiding this comment.
Thanks, fixed in the new PR.
bool(NotImplemented)into an error #118767📚 Documentation preview 📚: https://cpython-previews--118775.org.readthedocs.build/