
Hi,
I'm trying to configure the no-docstring-rgx option to ignore function and class names that: - Starts with _ - Starts with test_ - Ends with tests - Ends with Tests
I came up with the following regular expression:
(^(test)?_)|((T|t)ests$)
When I test the regular expression on https://regex101.com/r/3BXmsa/6, it matches the text I expect it to match.
However, when I run pylint against my code, it still reports a docstring is missing for a class name that ends with Tests.
For example, if I have the following python 3 code.
import unittest
class _Utils(unittest.TestCase): pass
class Test_Foo(unittest.TestCase): pass
class test_Foo(unittest.TestCase): pass
class UtilsTests(unittest.TestCase):
def test_function_name(self): pass
def _foo(self): pass
def my_tests(self): pass
if __name__ == "__main__": unittest.main()
Running pylint --disable=all --enable=missing-docstring --no-docstring-rgx='(^(test)?_)|((T|t)ests$)' ./test.py yields
$ pylint --disable=all --enable=missing-docstring --no-docstring-rgx='(^(test)?_)|((T|t)ests$)' ./test.py
************* Module test
test.py:1:0: C0111: Missing module docstring (missing-docstring)
test.py:8:0: C0111: Missing class docstring (missing-docstring)
test.py:16:0: C0111: Missing class docstring (missing-docstring)
test.py:24:4: C0111: Missing method docstring (missing-docstring)
------------------------------------------------------------------
Your code has been rated at 7.50/10 (previous run: 7.50/10, +0.00)
I was only expecting to see the Missing module docstring violation, and the missing class docstring on line 8.
Here is my environment:
$ pylint --version
pylint 2.3.1
astroid 2.2.5
Python 3.7.3 (default, Mar 27 2019, 09:23:15)
[Clang 10.0.1 (clang-1001.0.46.3)]
Any ideas what is going on and how to fix it?
Cheers,
Bassam --- "What we can or cannot do, what we consider possible or impossible, is rarely a function of our true capability. It is more likely a function of our beliefs about who we are." - Tony Robbins