4
4
5
5
"""Unittest for the BaseChecker class."""
6
6
7
+ import pytest
7
8
8
9
from pylint .checkers import BaseChecker
9
10
from pylint .checkers .imports import ImportsChecker
10
11
from pylint .checkers .typecheck import TypeChecker
12
+ from pylint .exceptions import InvalidMessageError
11
13
from pylint .extensions .while_used import WhileChecker
12
14
from pylint .lint .pylinter import PyLinter
13
15
@@ -26,6 +28,11 @@ def __init__(self) -> None:
26
28
}
27
29
28
30
31
+ class MissingFieldsChecker (BaseChecker ):
32
+ name = "basic"
33
+ msgs = {"W0001" : ("msg-name" ,)} # type: ignore[dict-item]
34
+
35
+
29
36
class LessBasicChecker (OtherBasicChecker ):
30
37
options = (
31
38
(
@@ -121,3 +128,20 @@ def test_base_checker_ordering() -> None:
121
128
assert fake_checker_1 > fake_checker_3
122
129
assert fake_checker_2 > fake_checker_3
123
130
assert fake_checker_1 == fake_checker_2
131
+
132
+
133
+ def test_base_checker_invalid_message () -> None :
134
+ linter = PyLinter ()
135
+
136
+ with pytest .raises (InvalidMessageError ):
137
+ linter .register_checker (MissingFieldsChecker (linter ))
138
+
139
+
140
+ def test_get_message_definition () -> None :
141
+ checker = LessBasicChecker ()
142
+ with pytest .warns (DeprecationWarning ):
143
+ with pytest .raises (InvalidMessageError ):
144
+ checker .get_message_definition ("W123" )
145
+
146
+ with pytest .warns (DeprecationWarning ):
147
+ assert checker .get_message_definition ("W0001" )
0 commit comments