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