diff options
author | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2019-08-10 13:10:00 +0200 |
---|---|---|
committer | Claudiu Popa <pcmanticore@gmail.com> | 2019-08-19 13:54:52 +0200 |
commit | 672def32e3aca52da9be5d71566e1b86810b4283 (patch) | |
tree | e0ac92ee50b4113cb1a104a9e64c2c27565c359d | |
parent | 4bd00376f84b673e397a1abe629d330a0444af35 (diff) | |
download | pylint-git-672def32e3aca52da9be5d71566e1b86810b4283.tar.gz |
[pylint.message] Create a MessageDefinition.check_msgid function
-rw-r--r-- | pylint/message/message_definition.py | 18 | ||||
-rw-r--r-- | tests/message/unittest_message.py | 13 | ||||
-rw-r--r-- | tests/message/unittest_message_definition.py | 19 |
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 = { |