summaryrefslogtreecommitdiff
path: root/tests/checkers/unittest_base_checker.py
blob: b684d6f59d9de3b13f9aa601126599432d8a5ec0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# 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

"""Unittest for the BaseChecker class."""

import unittest

from pylint.checkers import BaseChecker


class TestBaseChecker(unittest.TestCase):
    def test_doc(self) -> None:
        class OtherBasicChecker(BaseChecker):
            name = "basic"
            msgs = {
                "W0001": (
                    "Basic checker has an example.",
                    "basic-checker-example",
                    "Used nowhere and serves no purpose.",
                )
            }

        class LessBasicChecker(OtherBasicChecker):
            options = (
                (
                    "example-args",
                    {
                        "default": 42,
                        "type": "int",
                        "metavar": "<int>",
                        "help": "Example of integer argument for the checker.",
                    },
                ),
            )

        basic = OtherBasicChecker()
        expected_beginning = """\
Basic checker
~~~~~~~~~~~~~

Verbatim name of the checker is ``basic``.

"""
        expected_middle = """\
Basic checker Options
^^^^^^^^^^^^^^^^^^^^^
:example-args:
  Example of integer argument for the checker.

  Default: ``42``

"""
        expected_end = """\
Basic checker Messages
^^^^^^^^^^^^^^^^^^^^^^
:basic-checker-example (W0001): *Basic checker has an example.*
  Used nowhere and serves no purpose.


"""
        self.assertEqual(str(basic), expected_beginning + expected_end)
        self.assertEqual(repr(basic), "Checker 'basic' (responsible for 'W0001')")
        less_basic = LessBasicChecker()

        self.assertEqual(
            str(less_basic), expected_beginning + expected_middle + expected_end
        )
        self.assertEqual(repr(less_basic), repr(basic))