summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniƫl van Noord <13665637+DanielNoord@users.noreply.github.com>2021-09-28 08:07:26 +0200
committerGitHub <noreply@github.com>2021-09-28 08:07:26 +0200
commit3fbf19284b6992fdeefd013bfa74724a43c521c4 (patch)
tree6203a29f3b6fd4f289f2f98b891fd4f009d56a6d
parenta602692aa169c2b1fb355ee67c8b67b6fb76f34e (diff)
downloadpylint-git-3fbf19284b6992fdeefd013bfa74724a43c521c4.tar.gz
Fix ``invalid-name`` for overwritten base ``object`` methods (#5079)
-rw-r--r--ChangeLog4
-rw-r--r--pylint/checkers/utils.py5
-rw-r--r--tests/functional/i/invalid/invalid_name.py9
-rw-r--r--tests/functional/i/invalid/invalid_name.txt11
4 files changed, 22 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index dce8f9c25..324a5dcab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -47,6 +47,10 @@ Release date: TBA
Closes #5066
+* Fixed ``invalid-name`` not checking parameters of overwritten base ``object`` methods
+
+ Closes #3614
+
What's New in Pylint 2.11.1?
============================
diff --git a/pylint/checkers/utils.py b/pylint/checkers/utils.py
index 7f04e22f7..6e96b3a97 100644
--- a/pylint/checkers/utils.py
+++ b/pylint/checkers/utils.py
@@ -456,8 +456,11 @@ def assign_parent(node: nodes.NodeNG) -> nodes.NodeNG:
def overrides_a_method(class_node: nodes.ClassDef, name: str) -> bool:
- """return True if <name> is a method overridden from an ancestor"""
+ """return True if <name> is a method overridden from an ancestor
+ which is not the base object class"""
for ancestor in class_node.ancestors():
+ if ancestor.name == "object":
+ continue
if name in ancestor and isinstance(ancestor[name], nodes.FunctionDef):
return True
return False
diff --git a/tests/functional/i/invalid/invalid_name.py b/tests/functional/i/invalid/invalid_name.py
index 9ec81bfbf..ea55102d7 100644
--- a/tests/functional/i/invalid/invalid_name.py
+++ b/tests/functional/i/invalid/invalid_name.py
@@ -1,5 +1,7 @@
""" Tests for invalid-name checker. """
-# pylint: disable=unused-import, wrong-import-position,import-outside-toplevel
+# pylint: disable=unused-import, wrong-import-position, import-outside-toplevel, missing-class-docstring
+# pylint: disable=too-few-public-methods
+
AAA = 24
try:
@@ -67,3 +69,8 @@ def a_very_very_very_long_function_name_WithCamelCase_to_make_it_sad(): # Shoul
print('LOL')
a_very_very_very_long_function_name_WithCamelCase_to_make_it_sad()
+
+
+class FooBar:
+ def __init__(self, fooBar) -> None: # [invalid-name]
+ self.foo_bar = fooBar
diff --git a/tests/functional/i/invalid/invalid_name.txt b/tests/functional/i/invalid/invalid_name.txt
index c4ecbfafd..e2471e368 100644
--- a/tests/functional/i/invalid/invalid_name.txt
+++ b/tests/functional/i/invalid/invalid_name.txt
@@ -1,5 +1,6 @@
-invalid-name:10:0::"Constant name ""aaa"" doesn't conform to UPPER_CASE naming style"
-invalid-name:14:4::"Constant name ""time"" doesn't conform to UPPER_CASE naming style"
-invalid-name:30:0:a:"Function name ""a"" doesn't conform to snake_case naming style"
-invalid-name:44:4::"Constant name ""Foocapfor"" doesn't conform to UPPER_CASE naming style"
-invalid-name:61:0:a_very_very_very_long_function_name_WithCamelCase_to_make_it_sad:"Function name ""a_very_very_very_long_function_name_WithCamelCase_to_make_it_sad"" doesn't conform to snake_case naming style"
+invalid-name:12:0::"Constant name ""aaa"" doesn't conform to UPPER_CASE naming style":HIGH
+invalid-name:16:4::"Constant name ""time"" doesn't conform to UPPER_CASE naming style":HIGH
+invalid-name:32:0:a:"Function name ""a"" doesn't conform to snake_case naming style":HIGH
+invalid-name:46:4::"Constant name ""Foocapfor"" doesn't conform to UPPER_CASE naming style":HIGH
+invalid-name:63:0:a_very_very_very_long_function_name_WithCamelCase_to_make_it_sad:"Function name ""a_very_very_very_long_function_name_WithCamelCase_to_make_it_sad"" doesn't conform to snake_case naming style":HIGH
+invalid-name:75:4:FooBar.__init__:"Argument name ""fooBar"" doesn't conform to snake_case naming style":HIGH