diff options
author | Laura M?dioni <laura.medioni@logilab.fr> | 2015-10-29 11:17:35 +0100 |
---|---|---|
committer | Laura M?dioni <laura.medioni@logilab.fr> | 2015-10-29 11:17:35 +0100 |
commit | 171326299f836782edd6167ac15de4a738dd53f8 (patch) | |
tree | 6a9b372413d13f9c996702b758509b7a30af37de /pylint/test | |
parent | e2da1f9f3dbd9a6462e0549da75b37249467afb8 (diff) | |
download | pylint-171326299f836782edd6167ac15de4a738dd53f8.tar.gz |
check for static methods declared without a decorator
closes issue #675
Diffstat (limited to 'pylint/test')
5 files changed, 32 insertions, 3 deletions
diff --git a/pylint/test/functional/bad_staticmethod_argument.py b/pylint/test/functional/bad_staticmethod_argument.py index 0ff5d9b..a71a40e 100644 --- a/pylint/test/functional/bad_staticmethod_argument.py +++ b/pylint/test/functional/bad_staticmethod_argument.py @@ -1,4 +1,4 @@ -# pylint: disable=missing-docstring +# pylint: disable=missing-docstring, no-staticmethod-decorator class Abcd(object): diff --git a/pylint/test/functional/no_staticmethod_decorator.py b/pylint/test/functional/no_staticmethod_decorator.py new file mode 100644 index 0000000..636b2a5 --- /dev/null +++ b/pylint/test/functional/no_staticmethod_decorator.py @@ -0,0 +1,28 @@ +"""Checks static methods are declared with a decorator if whithin the class +scope and if static method's argument is a member of the class +""" + +# pylint: disable=too-few-public-methods + +class MyClass(object): + """Some class""" + def __init__(self): + pass + + def smethod(): + """static method-to-be""" + smethod = staticmethod(smethod) # [no-staticmethod-decorator] + + @staticmethod + def my_second_method(): + """correct static method definition""" + +def helloworld(): + """says hello""" + print 'hello world' + +MyClass.new_static_method = staticmethod(helloworld) + +class MyOtherClass(object): + """Some other class""" + _make = staticmethod(tuple.__new__) diff --git a/pylint/test/functional/no_staticmethod_decorator.txt b/pylint/test/functional/no_staticmethod_decorator.txt new file mode 100644 index 0000000..b8d23ae --- /dev/null +++ b/pylint/test/functional/no_staticmethod_decorator.txt @@ -0,0 +1 @@ +no-staticmethod-decorator:14:MyClass:Consider using a decorator instead of calling staticmethod diff --git a/pylint/test/input/func_noerror_classes_protected_member_access.py b/pylint/test/input/func_noerror_classes_protected_member_access.py index 670e3e8..2ffd9d1 100644 --- a/pylint/test/input/func_noerror_classes_protected_member_access.py +++ b/pylint/test/input/func_noerror_classes_protected_member_access.py @@ -3,7 +3,7 @@ """ __revision__ = 1 -# pylint: disable=no-classmethod-decorator +# pylint: disable=no-classmethod-decorator, no-staticmethod-decorator class A3123(object): """oypuee""" _protected = 1 diff --git a/pylint/test/input/func_noerror_static_method.py b/pylint/test/input/func_noerror_static_method.py index 8a7a0a2..7457f45 100644 --- a/pylint/test/input/func_noerror_static_method.py +++ b/pylint/test/input/func_noerror_static_method.py @@ -3,7 +3,7 @@ from __future__ import print_function __revision__ = '' -#pylint: disable=no-classmethod-decorator +#pylint: disable=no-classmethod-decorator, no-staticmethod-decorator class MyClass(object): """doc """ |