diff options
author | Andy Palmer <25123779+ninezerozeronine@users.noreply.github.com> | 2019-12-16 00:38:21 -0800 |
---|---|---|
committer | Claudiu Popa <pcmanticore@gmail.com> | 2019-12-16 09:38:21 +0100 |
commit | dc83a86bc5556e2ec630403f760461708f15a69b (patch) | |
tree | 1fe6edc4d82445c60105ccd1745ea2a2c53096df /tests/functional/n | |
parent | c4a954fdc354a8849a6bd3641bd64b8ce0608c73 (diff) | |
download | pylint-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.py | 53 | ||||
-rw-r--r-- | tests/functional/n/non_str_assignment_to_dunder_name.txt | 8 |
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__ |