diff options
author | Jacob Walls <jacobtylerwalls@gmail.com> | 2021-12-03 17:02:00 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-03 23:02:00 +0100 |
commit | 3ed7a8e3933d14bc6d07afa8e6ba992b5a4b6926 (patch) | |
tree | 29563d184f64be387f5a6dff5b01f1cfd549db5d /tests/functional/a | |
parent | 82f0f88c1807eb94eeab2d7670bf930f1850dedd (diff) | |
download | pylint-git-3ed7a8e3933d14bc6d07afa8e6ba992b5a4b6926.tar.gz |
Fix #5371: Correctly count arguments to static methods missing @staticmethod decorator (#5412)
* Fix #5371: Correctly count arguments to static methods missing @staticmethod decorator
* Implementations of MapReduceMixin.reduce_map_data were actually not classmethods
Diffstat (limited to 'tests/functional/a')
-rw-r--r-- | tests/functional/a/arguments_differ.py | 12 | ||||
-rw-r--r-- | tests/functional/a/arguments_differ.txt | 13 | ||||
-rw-r--r-- | tests/functional/a/arguments_differ_issue5371.py | 13 |
3 files changed, 30 insertions, 8 deletions
diff --git a/tests/functional/a/arguments_differ.py b/tests/functional/a/arguments_differ.py index b5b43505a..d6689d920 100644 --- a/tests/functional/a/arguments_differ.py +++ b/tests/functional/a/arguments_differ.py @@ -141,7 +141,7 @@ class PropertySetter(Property): class StaticmethodChild2(Staticmethod):
- def func(self, data):
+ def func(self, data): # [arguments-differ]
super().func(data)
@@ -151,15 +151,23 @@ class SuperClass(object): def impl(arg1, arg2, **kwargs):
return arg1 + arg2
+ def should_have_been_decorated_as_static(arg1, arg2): # pylint: disable=no-self-argument
+ return arg1 + arg2
+
class MyClass(SuperClass):
- def impl(self, *args, **kwargs):
+ @staticmethod
+ def impl(*args, **kwargs):
"""
Acceptable use of vararg in subclass because it does not violate LSP.
"""
super().impl(*args, **kwargs)
+ @staticmethod
+ def should_have_been_decorated_as_static(arg1, arg2):
+ return arg1 + arg2
+
class FirstHasArgs(object):
diff --git a/tests/functional/a/arguments_differ.txt b/tests/functional/a/arguments_differ.txt index ea0b74dfa..5cce378e2 100644 --- a/tests/functional/a/arguments_differ.txt +++ b/tests/functional/a/arguments_differ.txt @@ -3,9 +3,10 @@ arguments-differ:23:4:24:12:ChildDefaults.test:Number of parameters was 3 in 'Pa arguments-differ:41:4:42:12:ClassmethodChild.func:Number of parameters was 2 in 'Classmethod.func' and is now 0 in overridden 'ClassmethodChild.func' method:UNDEFINED arguments-differ:68:4:69:64:VarargsChild.has_kwargs:Variadics removed in overridden 'VarargsChild.has_kwargs' method:UNDEFINED arguments-renamed:71:4:72:89:VarargsChild.no_kwargs:Parameter 'args' has been renamed to 'arg' in overridden 'VarargsChild.no_kwargs' method:UNDEFINED -arguments-differ:172:4:173:12:SecondChangesArgs.test:Number of parameters was 2 in 'FirstHasArgs.test' and is now 4 in overridden 'SecondChangesArgs.test' method:UNDEFINED -arguments-differ:298:4:299:60:Foo.kwonly_1:Number of parameters was 4 in 'AbstractFoo.kwonly_1' and is now 3 in overridden 'Foo.kwonly_1' method:UNDEFINED -arguments-differ:301:4:302:82:Foo.kwonly_2:Number of parameters was 3 in 'AbstractFoo.kwonly_2' and is now 2 in overridden 'Foo.kwonly_2' method:UNDEFINED -arguments-differ:304:4:305:32:Foo.kwonly_3:Number of parameters was 3 in 'AbstractFoo.kwonly_3' and is now 3 in overridden 'Foo.kwonly_3' method:UNDEFINED -arguments-differ:307:4:308:32:Foo.kwonly_4:Number of parameters was 3 in 'AbstractFoo.kwonly_4' and is now 3 in overridden 'Foo.kwonly_4' method:UNDEFINED -arguments-differ:310:4:311:41:Foo.kwonly_5:Variadics removed in overridden 'Foo.kwonly_5' method:UNDEFINED +arguments-differ:144:4:145:26:StaticmethodChild2.func:Number of parameters was 1 in 'Staticmethod.func' and is now 2 in overridden 'StaticmethodChild2.func' method:UNDEFINED +arguments-differ:180:4:181:12:SecondChangesArgs.test:Number of parameters was 2 in 'FirstHasArgs.test' and is now 4 in overridden 'SecondChangesArgs.test' method:UNDEFINED +arguments-differ:306:4:307:60:Foo.kwonly_1:Number of parameters was 4 in 'AbstractFoo.kwonly_1' and is now 3 in overridden 'Foo.kwonly_1' method:UNDEFINED +arguments-differ:309:4:310:82:Foo.kwonly_2:Number of parameters was 3 in 'AbstractFoo.kwonly_2' and is now 2 in overridden 'Foo.kwonly_2' method:UNDEFINED +arguments-differ:312:4:313:32:Foo.kwonly_3:Number of parameters was 3 in 'AbstractFoo.kwonly_3' and is now 3 in overridden 'Foo.kwonly_3' method:UNDEFINED +arguments-differ:315:4:316:32:Foo.kwonly_4:Number of parameters was 3 in 'AbstractFoo.kwonly_4' and is now 3 in overridden 'Foo.kwonly_4' method:UNDEFINED +arguments-differ:318:4:319:41:Foo.kwonly_5:Variadics removed in overridden 'Foo.kwonly_5' method:UNDEFINED diff --git a/tests/functional/a/arguments_differ_issue5371.py b/tests/functional/a/arguments_differ_issue5371.py new file mode 100644 index 000000000..a0cd39613 --- /dev/null +++ b/tests/functional/a/arguments_differ_issue5371.py @@ -0,0 +1,13 @@ +"""https://github.com/PyCQA/pylint/issues/5371""" +from enum import Enum + + +class MyEnum(Enum): + """ + Enum._generate_next_value_() in the stdlib currently lacks a + @staticmethod decorator. + """ + + @staticmethod + def _generate_next_value_(name: str, start: int, count: int, last_values: list): + return 42 |