summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Mueller <30130371+cdce8p@users.noreply.github.com>2021-10-07 20:15:25 +0200
committerGitHub <noreply@github.com>2021-10-07 20:15:25 +0200
commit2a343e8d5350d8944948db72a75494faf2dd653a (patch)
tree30afa637644724bd5261dcc75911a9015d4bd5a3
parent04fa4276eac6f623cd5ced4711afc9e58a68e230 (diff)
downloadpylint-git-2a343e8d5350d8944948db72a75494faf2dd653a.tar.gz
Add test for typing alias in isinstance calls (#5089)
-rw-r--r--ChangeLog5
-rw-r--r--tests/functional/r/regression/regression_3507_typing_alias_isinstance.py26
-rw-r--r--tests/functional/r/regression/regression_3507_typing_alias_isinstance.rc2
3 files changed, 33 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 73238e1ad..c1670710e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -84,6 +84,11 @@ Release date: TBA
Closes #5048
+* Fix false-positive ``isinstance-second-argument-not-valid-type`` with ``typing.Callable``.
+
+ Closes #3507
+ Closes #5087
+
* ``TypingChecker``
* Fix false-negative for ``deprecated-typing-alias`` and ``consider-using-alias``
diff --git a/tests/functional/r/regression/regression_3507_typing_alias_isinstance.py b/tests/functional/r/regression/regression_3507_typing_alias_isinstance.py
new file mode 100644
index 000000000..4dba85545
--- /dev/null
+++ b/tests/functional/r/regression/regression_3507_typing_alias_isinstance.py
@@ -0,0 +1,26 @@
+"""
+https://github.com/PyCQA/pylint/issues/3507
+False-positive 'isinstance-second-argument-not-valid-type'
+for typing aliases in 'isinstance' calls.
+"""
+import collections
+import collections.abc
+import typing
+
+isinstance(42, typing.Dict)
+isinstance(42, typing.Counter)
+isinstance(42, typing.Collection)
+isinstance(42, typing.Iterator)
+isinstance(42, typing.Tuple)
+isinstance(42, typing.Callable)
+isinstance(42, typing.Type)
+
+
+# For comparison - also valid calls
+isinstance(42, dict)
+isinstance(42, collections.Counter)
+isinstance(42, collections.abc.Collection)
+isinstance(42, collections.abc.Iterator)
+isinstance(42, tuple)
+isinstance(42, collections.abc.Callable)
+isinstance(42, type)
diff --git a/tests/functional/r/regression/regression_3507_typing_alias_isinstance.rc b/tests/functional/r/regression/regression_3507_typing_alias_isinstance.rc
new file mode 100644
index 000000000..a17bb22da
--- /dev/null
+++ b/tests/functional/r/regression/regression_3507_typing_alias_isinstance.rc
@@ -0,0 +1,2 @@
+[testoptions]
+min_pyver=3.7