summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Sassoulas <pierre.sassoulas@gmail.com>2019-08-10 13:10:00 +0200
committerClaudiu Popa <pcmanticore@gmail.com>2019-08-19 13:54:52 +0200
commit672def32e3aca52da9be5d71566e1b86810b4283 (patch)
treee0ac92ee50b4113cb1a104a9e64c2c27565c359d
parent4bd00376f84b673e397a1abe629d330a0444af35 (diff)
downloadpylint-git-672def32e3aca52da9be5d71566e1b86810b4283.tar.gz
[pylint.message] Create a MessageDefinition.check_msgid function
-rw-r--r--pylint/message/message_definition.py18
-rw-r--r--tests/message/unittest_message.py13
-rw-r--r--tests/message/unittest_message_definition.py19
3 files changed, 32 insertions, 18 deletions
diff --git a/pylint/message/message_definition.py b/pylint/message/message_definition.py
index cd33cd575..e54c15aae 100644
--- a/pylint/message/message_definition.py
+++ b/pylint/message/message_definition.py
@@ -24,10 +24,7 @@ class MessageDefinition:
old_names=None,
):
self.checker = checker
- if len(msgid) != 5:
- raise InvalidMessageError("Invalid message id %r" % msgid)
- if not msgid[0] in MSG_TYPES:
- raise InvalidMessageError("Bad message type %s in %r" % (msgid[0], msgid))
+ self.check_msgid(msgid)
self.msgid = msgid
self.symbol = symbol
self.msg = msg
@@ -35,7 +32,18 @@ class MessageDefinition:
self.scope = scope
self.minversion = minversion
self.maxversion = maxversion
- self.old_names = old_names or []
+ self.old_names = []
+ if old_names:
+ for old_msgid, old_symbol in old_names:
+ self.check_msgid(old_msgid)
+ self.old_names.append([old_msgid, old_symbol])
+
+ @staticmethod
+ def check_msgid(msgid: str) -> None:
+ if len(msgid) != 5:
+ raise InvalidMessageError("Invalid message id %r" % msgid)
+ if msgid[0] not in MSG_TYPES:
+ raise InvalidMessageError("Bad message type %s in %r" % (msgid[0], msgid))
def __repr__(self):
return "MessageDefinition:%s (%s)" % (self.symbol, self.msgid)
diff --git a/tests/message/unittest_message.py b/tests/message/unittest_message.py
index 3bc1578b5..d11eb3681 100644
--- a/tests/message/unittest_message.py
+++ b/tests/message/unittest_message.py
@@ -141,16 +141,3 @@ def test_register_error_new_id_duplicate_of_new(store):
{"W1234": ("message two", "msg-symbol-two", "another msg description.")},
"Message id 'W1234' cannot have both 'msg-symbol-one' and 'msg-symbol-two' as symbolic name.",
)
-
-
-@pytest.mark.parametrize(
- "msgid,expected",
- [
- ("Q1234", "Bad message type Q in 'Q1234'"),
- ("W12345", "Invalid message id 'W12345'"),
- ],
-)
-def test_create_invalid_message_type(msgid, expected):
- with pytest.raises(InvalidMessageError) as cm:
- MessageDefinition("checker", msgid, "msg", "descr", "symbol", "scope")
- assert str(cm.value) == expected
diff --git a/tests/message/unittest_message_definition.py b/tests/message/unittest_message_definition.py
index 0b9b05907..13ec7adae 100644
--- a/tests/message/unittest_message_definition.py
+++ b/tests/message/unittest_message_definition.py
@@ -5,11 +5,30 @@
import sys
+import pytest
+
from pylint.checkers import BaseChecker
from pylint.constants import WarningScope
+from pylint.exceptions import InvalidMessageError
from pylint.message import MessageDefinition
+@pytest.mark.parametrize(
+ "msgid,expected",
+ [
+ ("Q1234", "Bad message type Q in 'Q1234'"),
+ ("W12345", "Invalid message id 'W12345'"),
+ ],
+)
+def test_create_invalid_message_type(msgid, expected):
+ with pytest.raises(InvalidMessageError) as invalid_message_error:
+ MessageDefinition.check_msgid(msgid)
+ with pytest.raises(InvalidMessageError) as other_invalid_message_error:
+ MessageDefinition("checker", msgid, "msg", "descr", "symbol", "scope")
+ assert str(invalid_message_error.value) == expected
+ assert str(other_invalid_message_error.value) == expected
+
+
class FalseChecker(BaseChecker):
name = "FalseChecker"
msgs = {