You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Because unittest is part of the standard library, it would be convenient if calling assertIsNotNone (and assertIsNone) would be constitute a None check from the type checker's perspective.
Additional context
It might be too magical to apply special treatment to these methods. Perhaps there should (eventually) be a generalized typing facility that assertIsNone/assertIsNotNone could adopt, a la TypeGuard.
The text was updated successfully, but these errors were encountered:
We generally don't hard code any knowledge of specific functions or methods. It's just not a scalable approach to type checking. Type information should come from the type stubs, even for stdlib methods.
In my code, I've worked around this by switching from assertIsNotNone to assert is not None. Another option is to disable the reportOptionalMemberAccess diagnostic check in your test files using a # pyright: reportOptionalMemberAccess=false comment at the top of the file.
We have made exceptions to the above principle in very rare cases but only after we received significant signal from pyright/pylance users. I'm going to close this issue for now, but we can consider reopening it in the future if it receives a bunch of upvotes or additional requests.
Well, this issue arises at different corners of GitHub, see also python/typeshed#8583 and the issues mentioned therein. People are still in need of this feature :)
Is your feature request related to a problem? Please describe.
It's common for unit tests (based on
unittest
) to assert that an object is non-None
and then verify some of its attributes.Pyright will flag that last line for
reportOptionalMemberAccess
, even though we've performed an (implied) "is not None" check viaassertIsNotNone
.There are three workarounds:
Somewhat redundant
Very redundant
Tricky but concise
Describe the solution you'd like
Because
unittest
is part of the standard library, it would be convenient if callingassertIsNotNone
(andassertIsNone
) would be constitute aNone
check from the type checker's perspective.Additional context
It might be too magical to apply special treatment to these methods. Perhaps there should (eventually) be a generalized typing facility that
assertIsNone
/assertIsNotNone
could adopt, a laTypeGuard
.The text was updated successfully, but these errors were encountered: