aboutsummaryrefslogtreecommitdiff
path: root/tests/extensions/test_docstyle.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/extensions/test_docstyle.py')
-rw-r--r--tests/extensions/test_docstyle.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/extensions/test_docstyle.py b/tests/extensions/test_docstyle.py
new file mode 100644
index 000000000..7c1d019e7
--- /dev/null
+++ b/tests/extensions/test_docstyle.py
@@ -0,0 +1,58 @@
+# Copyright (c) 2016-2018, 2020 Claudiu Popa <pcmanticore@gmail.com>
+# Copyright (c) 2016-2017 Derek Gustafson <degustaf@gmail.com>
+# Copyright (c) 2016 Luis Escobar <lescobar@vauxoo.com>
+# Copyright (c) 2019-2021 Pierre Sassoulas <pierre.sassoulas@gmail.com>
+# Copyright (c) 2019 Ashley Whetter <ashley@awhetter.co.uk>
+# Copyright (c) 2020 hippo91 <guillaume.peillex@gmail.com>
+# Copyright (c) 2021 Daniƫl van Noord <13665637+DanielNoord@users.noreply.github.com>
+# Copyright (c) 2021 Marc Mueller <30130371+cdce8p@users.noreply.github.com>
+
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+
+"""Tests for the pylint checker in :mod:`pylint.extensions.check_docstring
+"""
+
+from os.path import abspath, dirname, join
+
+import pytest
+
+from pylint.extensions.docstyle import DocStringStyleChecker
+from pylint.lint.pylinter import PyLinter
+
+EXPECTED_MSGS = [
+ "First line empty in function docstring",
+ "First line empty in class docstring",
+ "First line empty in method docstring",
+ "Bad docstring quotes in method, expected \"\"\", given '''",
+ 'Bad docstring quotes in method, expected """, given "',
+ 'Bad docstring quotes in method, expected """, given \'',
+ 'Bad docstring quotes in method, expected """, given \'',
+]
+
+EXPECTED_SYMBOLS = [
+ "docstring-first-line-empty",
+ "docstring-first-line-empty",
+ "docstring-first-line-empty",
+ "bad-docstring-quotes",
+ "bad-docstring-quotes",
+ "bad-docstring-quotes",
+ "bad-docstring-quotes",
+]
+
+
+@pytest.fixture(scope="module")
+def checker():
+ return DocStringStyleChecker
+
+
+def test_docstring_message(linter: PyLinter) -> None:
+ docstring_test = join(dirname(abspath(__file__)), "data", "docstring.py")
+ linter.check([docstring_test])
+ msgs = linter.reporter.messages
+ assert len(msgs) == 7
+ for msg, expected_symbol, expected_msg in zip(
+ msgs, EXPECTED_SYMBOLS, EXPECTED_MSGS
+ ):
+ assert msg.symbol == expected_symbol
+ assert msg.msg == expected_msg