summaryrefslogtreecommitdiff
path: root/tests/message
diff options
context:
space:
mode:
authorPierre Sassoulas <pierre.sassoulas@gmail.com>2019-08-04 11:53:19 +0200
committerClaudiu Popa <pcmanticore@gmail.com>2019-08-06 16:38:21 +0200
commite8bed2fc04ac53a201b6bc9d78e197abc937beca (patch)
tree6c5d221201325f318c53cc0fc63498ea7991f052 /tests/message
parent26c4108087a23bd5d3347e473811d42427157852 (diff)
downloadpylint-git-e8bed2fc04ac53a201b6bc9d78e197abc937beca.tar.gz
[pylint.message] Add unittests for MessageDefinition
Diffstat (limited to 'tests/message')
-rw-r--r--tests/message/unittest_message_definition.py85
1 files changed, 85 insertions, 0 deletions
diff --git a/tests/message/unittest_message_definition.py b/tests/message/unittest_message_definition.py
new file mode 100644
index 000000000..0b9b05907
--- /dev/null
+++ b/tests/message/unittest_message_definition.py
@@ -0,0 +1,85 @@
+# -*- coding: utf-8 -*-
+
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/master/COPYING
+
+import sys
+
+from pylint.checkers import BaseChecker
+from pylint.constants import WarningScope
+from pylint.message import MessageDefinition
+
+
+class FalseChecker(BaseChecker):
+ name = "FalseChecker"
+ msgs = {
+ "W1234": ("message one", "msg-symbol-one", "msg description"),
+ "W1235": (
+ "message two",
+ "msg-symbol-two",
+ "msg description",
+ {"old_names": [("W1230", "msg-symbol-one")]},
+ ),
+ }
+
+
+class TestMessagesDefinition(object):
+ def assert_with_fail_msg(self, msg, expected=True):
+ fail_msg = "With minversion='{}' and maxversion='{}',".format(
+ msg.minversion, msg.maxversion
+ )
+ fail_msg += " and the python interpreter being {} ".format(sys.version_info)
+ fail_msg += "the message should{}be emitable"
+ if expected:
+ assert msg.may_be_emitted(), fail_msg.format(" ")
+ else:
+ assert not msg.may_be_emitted(), fail_msg.format(" not ")
+
+ def get_message_definition(self):
+ args = [
+ FalseChecker(),
+ "W1234",
+ "message",
+ "description",
+ "msg-symbol",
+ WarningScope.NODE,
+ ]
+ kwargs = {"minversion": None, "maxversion": None}
+ return MessageDefinition(*args, **kwargs)
+
+ def test_may_be_emitted(self):
+ major = sys.version_info.major
+ minor = sys.version_info.minor
+ msg = self.get_message_definition()
+ self.assert_with_fail_msg(msg, expected=True)
+ msg.minversion = (major, minor - 1)
+ msg.maxversion = (major, minor + 1)
+ self.assert_with_fail_msg(msg, expected=True)
+ msg.minversion = (major, minor + 1)
+ self.assert_with_fail_msg(msg, expected=False)
+ msg.minversion = (major, minor - 1)
+ self.assert_with_fail_msg(msg, expected=True)
+ msg.maxversion = (major, minor - 1)
+ self.assert_with_fail_msg(msg, expected=False)
+
+ def test_repr(self):
+ msg = self.get_message_definition()
+ repr_str = str([msg, msg])
+ assert "W1234" in repr_str
+ assert "msg-symbol" in repr_str
+ expected = "[MessageDefinition:msg-symbol-one (W1234), MessageDefinition:msg-symbol-two (W1235)]"
+ assert str(FalseChecker().messages) == expected
+
+ def test_format_help(self):
+ msg = self.get_message_definition()
+ major = sys.version_info.major
+ minor = sys.version_info.minor
+ msg.minversion = (major, minor - 1)
+ msg.maxversion = (major, minor + 1)
+ format_str_checker_ref = msg.format_help(checkerref=False)
+ format_str = msg.format_help(checkerref=True)
+ assert str(minor - 1) in format_str
+ assert str(major + 1) in format_str_checker_ref
+ expected_format_help = """:msg-symbol-one (W1234): *message one*
+ msg description"""
+ assert FalseChecker().messages[0].format_help() == expected_format_help