summaryrefslogtreecommitdiff
path: root/tests/functional
diff options
context:
space:
mode:
authoryushao2 <36848472+yushao2@users.noreply.github.com>2021-09-15 01:26:44 +0800
committerGitHub <noreply@github.com>2021-09-14 19:26:44 +0200
commit272596b80c8f9cb6ddb6e3f893298f20242a9c32 (patch)
tree9455f789eda9e34611ece1455787e1e9cfff5433 /tests/functional
parentaf407c73064c1a9cb3cce5f056fa1e26c9e7b540 (diff)
downloadpylint-git-272596b80c8f9cb6ddb6e3f893298f20242a9c32.tar.gz
Fix false positive ``unused-private-member`` for accessing attributes in a class using ``cls`` (#4965)
* Fix false positive ``unused-private-member`` for accessing attributes in a class using ``cls`` Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com>
Diffstat (limited to 'tests/functional')
-rw-r--r--tests/functional/u/unused/unused_private_member.py19
-rw-r--r--tests/functional/u/unused/unused_private_member.txt6
2 files changed, 22 insertions, 3 deletions
diff --git a/tests/functional/u/unused/unused_private_member.py b/tests/functional/u/unused/unused_private_member.py
index 9c3d37303..319a06d88 100644
--- a/tests/functional/u/unused/unused_private_member.py
+++ b/tests/functional/u/unused/unused_private_member.py
@@ -242,6 +242,25 @@ class FalsePositive4681:
FalsePositive4681.__instance = False # This should be fine
FalsePositive4681.__should_cause_error = False # [unused-private-member]
+# Accessing attributes of the class using `cls` should not result in a false positive
+# as long as it is used within the class
+class FalsePositive4681b:
+ __instance = None
+
+ @classmethod # Use class method here
+ def instance(cls):
+ if cls.__instance is None:
+ cls()
+ return cls.__instance
+
+ def __init__(self):
+ try:
+ FalsePositive4681b.__instance = 42 # This should be fine
+ except Exception: # pylint: disable=broad-except
+ print("Error")
+ FalsePositive4681b.__instance = False # This should be fine
+
+
# https://github.com/PyCQA/pylint/issues/4849
# Accessing private static methods from classmethods via `cls` should not result in a
# false positive
diff --git a/tests/functional/u/unused/unused_private_member.txt b/tests/functional/u/unused/unused_private_member.txt
index 1d5baa9dc..08adc8c15 100644
--- a/tests/functional/u/unused/unused_private_member.txt
+++ b/tests/functional/u/unused/unused_private_member.txt
@@ -14,6 +14,6 @@ unused-private-member:212:8:Crash4755Context.__init__:Unused private member `Cra
unused-private-member:229:4:FalsePositive4681:Unused private member `FalsePositive4681.__should_cause_error`:HIGH
unused-private-member:239:12:FalsePositive4681.__init__:Unused private member `FalsePositive4681.__should_cause_error`:HIGH
unused-private-member:243:12:FalsePositive4681.__init__:Unused private member `FalsePositive4681.__should_cause_error`:HIGH
-unused-private-member:255:4:FalsePositive4849.__unused_private_method:Unused private member `FalsePositive4849.__unused_private_method()`:HIGH
-unused-private-member:272:4:Pony.__init_defaults:Unused private member `Pony.__init_defaults(self)`:HIGH
-unused-private-member:277:4:Pony.__get_fur_color:Unused private member `Pony.__get_fur_color(self)`:HIGH
+unused-private-member:274:4:FalsePositive4849.__unused_private_method:Unused private member `FalsePositive4849.__unused_private_method()`:HIGH
+unused-private-member:291:4:Pony.__init_defaults:Unused private member `Pony.__init_defaults(self)`:HIGH
+unused-private-member:296:4:Pony.__get_fur_color:Unused private member `Pony.__get_fur_color(self)`:HIGH