diff options
author | Torsten Marek <tmarek@google.com> | 2013-11-06 13:42:14 -0800 |
---|---|---|
committer | Torsten Marek <tmarek@google.com> | 2013-11-06 13:42:14 -0800 |
commit | 69613cf1725c93aa9219fa8d16948ee991dd2347 (patch) | |
tree | ab63efed7d6835d8cd6c44ff2e3cc2c119cab670 | |
parent | ba78cbf5fca401f687059949ac9f51f0a526562e (diff) | |
download | pylint-69613cf1725c93aa9219fa8d16948ee991dd2347.tar.gz |
Add support for registering deprecated names for messages.
-rw-r--r-- | test/unittest_lint.py | 17 | ||||
-rw-r--r-- | utils.py | 16 |
2 files changed, 32 insertions, 1 deletions
diff --git a/test/unittest_lint.py b/test/unittest_lint.py index 579ffc1..6442eb4 100644 --- a/test/unittest_lint.py +++ b/test/unittest_lint.py @@ -369,6 +369,23 @@ class PyLinterTC(TestCase): ['C: 1: Line too long (1/2)', 'C: 2: Line too long (3/4)'], self.linter.reporter.messages) + def test_add_renamed_message(self): + self.linter.add_renamed_message('C9999', 'old-bad-name', 'invalid-name') + self.assertEqual('invalid-name', + self.linter.check_message_id('C9999').symbol) + self.assertEqual('invalid-name', + self.linter.check_message_id('old-bad-name').symbol) + + def test_renamed_message_register(self): + class Checker(object): + msgs = {'W1234': ('message', 'msg-symbol', 'msg-description', + {'old_names': [('W0001', 'old-symbol')]})} + self.linter.register_messages(Checker()) + self.assertEqual('msg-symbol', + self.linter.check_message_id('W0001').symbol) + self.assertEqual('msg-symbol', + self.linter.check_message_id('old-symbol').symbol) + class ConfigTC(TestCase): @@ -133,7 +133,7 @@ def build_message_def(checker, msgid, msg_tuple): class MessageDefinition(object): def __init__(self, checker, msgid, msg, descr, symbol, scope, - minversion=None, maxversion=None): + minversion=None, maxversion=None, old_names=None): self.checker = checker assert len(msgid) == 5, 'Invalid message id %s' % msgid assert msgid[0] in MSG_TYPES, \ @@ -145,6 +145,7 @@ class MessageDefinition(object): self.scope = scope self.minversion = minversion self.maxversion = maxversion + self.old_names = old_names or [] def may_be_emitted(self): """return True if message may be emitted using the current interpreter""" @@ -206,6 +207,16 @@ class MessagesHandlerMixIn(object): self._ignored_msgs = {} self._suppression_mapping = {} + def add_renamed_message(self, old_id, old_symbol, new_symbol): + """Register the old ID and symbol for a warning that was renamed. + + This allows users to keep using the old ID/symbol in suppressions. + """ + msg = self.check_message_id(new_symbol) + msg.old_names.append((old_id, old_symbol)) + self._alternative_names[old_id] = msg + self._alternative_names[old_symbol] = msg + def register_messages(self, checker): """register a dictionary of messages @@ -231,6 +242,9 @@ class MessagesHandlerMixIn(object): continue self._messages[msg.symbol] = msg self._alternative_names[msg.msgid] = msg + for old_id, old_symbol in msg.old_names: + self._alternative_names[old_id] = msg + self._alternative_names[old_symbol] = msg self._msgs_by_category.setdefault(msg.msgid[0], []).append(msg.msgid) def disable(self, msgid, scope='package', line=None): |