summaryrefslogtreecommitdiff
path: root/pylint/test
diff options
context:
space:
mode:
authoryory8 <39745367+yory8@users.noreply.github.com>2019-03-20 08:41:16 +0000
committerClaudiu Popa <pcmanticore@gmail.com>2019-03-20 09:41:16 +0100
commita138a1a8f4bd1ff4ff5718c8b23a9b82c27aef3c (patch)
treef73920bd7dc6827bd0f84e93af32a411ac37e20f /pylint/test
parent30b2ae713eb4453b305407772b29ea68d7c3d074 (diff)
downloadpylint-git-a138a1a8f4bd1ff4ff5718c8b23a9b82c27aef3c.tar.gz
Add new linter: dict-iter-missing-items
Add a new linter to check against forgotten calls to `.items()` when iterating through a dictionary in a `for` loop. Close #2761
Diffstat (limited to 'pylint/test')
-rw-r--r--pylint/test/functional/dict_iter_missing_items.py23
-rw-r--r--pylint/test/functional/dict_iter_missing_items.txt1
2 files changed, 24 insertions, 0 deletions
diff --git a/pylint/test/functional/dict_iter_missing_items.py b/pylint/test/functional/dict_iter_missing_items.py
new file mode 100644
index 000000000..333f58990
--- /dev/null
+++ b/pylint/test/functional/dict_iter_missing_items.py
@@ -0,0 +1,23 @@
+# pylint: disable=invalid-name, consider-iterating-dictionary, missing-docstring, import-error
+from unknown import Uninferable
+
+d = {1: 1, 2: 2}
+l = [1, 2]
+s1 = {1, 2}
+s2 = {1, 2, 3}
+
+# Positive
+for k, v in d: # [dict-iter-missing-items]
+ pass
+
+# Negative
+for k, v in d.items():
+ pass
+for k in d.keys():
+ pass
+for i, v in enumerate(l):
+ pass
+for i, v in s1.intersection(s2):
+ pass
+for k, v in Uninferable:
+ pass
diff --git a/pylint/test/functional/dict_iter_missing_items.txt b/pylint/test/functional/dict_iter_missing_items.txt
new file mode 100644
index 000000000..0e939ee33
--- /dev/null
+++ b/pylint/test/functional/dict_iter_missing_items.txt
@@ -0,0 +1 @@
+dict-iter-missing-items:10::Unpacking a dictionary in iteration without calling .items()