summaryrefslogtreecommitdiff
path: root/tests/functional/n
diff options
context:
space:
mode:
authorAndy Palmer <25123779+ninezerozeronine@users.noreply.github.com>2019-12-16 00:38:21 -0800
committerClaudiu Popa <pcmanticore@gmail.com>2019-12-16 09:38:21 +0100
commitdc83a86bc5556e2ec630403f760461708f15a69b (patch)
tree1fe6edc4d82445c60105ccd1745ea2a2c53096df /tests/functional/n
parentc4a954fdc354a8849a6bd3641bd64b8ce0608c73 (diff)
downloadpylint-git-dc83a86bc5556e2ec630403f760461708f15a69b.tar.gz
Add check to make sure only strings are assigned to __name__ (#3271)
Close #583
Diffstat (limited to 'tests/functional/n')
-rw-r--r--tests/functional/n/non_str_assignment_to_dunder_name.py53
-rw-r--r--tests/functional/n/non_str_assignment_to_dunder_name.txt8
2 files changed, 61 insertions, 0 deletions
diff --git a/tests/functional/n/non_str_assignment_to_dunder_name.py b/tests/functional/n/non_str_assignment_to_dunder_name.py
new file mode 100644
index 000000000..a910cbd6f
--- /dev/null
+++ b/tests/functional/n/non_str_assignment_to_dunder_name.py
@@ -0,0 +1,53 @@
+# pylint: disable=missing-module-docstring, missing-class-docstring
+# pylint: disable=too-few-public-methods, missing-function-docstring
+# pylint: disable=import-error
+
+import random
+
+from unknown import Unknown
+
+
+class ExampleClass():
+ pass
+
+
+def example_function():
+ pass
+
+
+def returns_str():
+ return "abcd"
+
+
+def returns_int():
+ return 0
+
+
+def returns_tuple():
+ return 0, "abc"
+
+
+# Might not be thorough if same hash seed is used in testing...
+def returns_random_type():
+ if random.randint(0, 1) > 0:
+ return 0
+
+ return "abc"
+
+ExampleClass.__name__ = 1 # [non-str-assignment-to-dunder-name]
+ExampleClass.__name__ = True # [non-str-assignment-to-dunder-name]
+ExampleClass.__name__ = returns_tuple() # [non-str-assignment-to-dunder-name]
+ExampleClass.__name__ = returns_int() # [non-str-assignment-to-dunder-name]
+ExampleClass.__name__ = "foo"
+ExampleClass.__name__ = returns_str()
+ExampleClass.__name__ = returns_random_type()
+ExampleClass.__name__ = Unknown
+
+example_function.__name__ = 1 # [non-str-assignment-to-dunder-name]
+example_function.__name__ = True # [non-str-assignment-to-dunder-name]
+example_function.__name__ = returns_tuple() # [non-str-assignment-to-dunder-name]
+example_function.__name__ = returns_int() # [non-str-assignment-to-dunder-name]
+example_function.__name__ = "foo"
+example_function.__name__ = returns_str()
+example_function.__name__ = returns_random_type()
+example_function.__name__ = Unknown
diff --git a/tests/functional/n/non_str_assignment_to_dunder_name.txt b/tests/functional/n/non_str_assignment_to_dunder_name.txt
new file mode 100644
index 000000000..23af6681c
--- /dev/null
+++ b/tests/functional/n/non_str_assignment_to_dunder_name.txt
@@ -0,0 +1,8 @@
+non-str-assignment-to-dunder-name:37::Non-string value assigned to __name__
+non-str-assignment-to-dunder-name:38::Non-string value assigned to __name__
+non-str-assignment-to-dunder-name:39::Non-string value assigned to __name__
+non-str-assignment-to-dunder-name:40::Non-string value assigned to __name__
+non-str-assignment-to-dunder-name:46::Non-string value assigned to __name__
+non-str-assignment-to-dunder-name:47::Non-string value assigned to __name__
+non-str-assignment-to-dunder-name:48::Non-string value assigned to __name__
+non-str-assignment-to-dunder-name:49::Non-string value assigned to __name__