diff options
author | Cezar <celnazli@bitdefender.com> | 2015-09-19 18:18:54 +0300 |
---|---|---|
committer | Cezar <celnazli@bitdefender.com> | 2015-09-19 18:18:54 +0300 |
commit | 7eebbddca4b39aeaad60bc68550b45ae1a5402ee (patch) | |
tree | d9162aa1d4ef60d64c324096f7e799df4e89ad5f | |
parent | 1f17d18b344876d273248dfdd96af92bd17770e0 (diff) | |
download | pylint-7eebbddca4b39aeaad60bc68550b45ae1a5402ee.tar.gz |
Add check for deprecated unittest aliases
-rw-r--r-- | pylint/checkers/stdlib.py | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/pylint/checkers/stdlib.py b/pylint/checkers/stdlib.py index 0bff8b0..4f9619a 100644 --- a/pylint/checkers/stdlib.py +++ b/pylint/checkers/stdlib.py @@ -117,10 +117,16 @@ class StdlibChecker(BaseChecker): 'The idiomatic way to perform an explicit typecheck in ' 'Python is to use isinstance(x, Y) rather than ' 'type(x) == Y, type(x) is Y. Though there are unusual ' - 'situations where these give different results.') + 'situations where these give different results.'), + 'W1505': ('Using deprecated alias %s', + 'deprecated-unittest-alias', + 'Since Python 3.2 and 2.7, the aliases of some TestCase ' + 'methods are deprecated. Refer to the table here ' + 'https://docs.python.org/3.5/library/unittest.html#deprecated-aliases'), } - @utils.check_messages('bad-open-mode', 'redundant-unittest-assert') + @utils.check_messages('bad-open-mode', 'redundant-unittest-assert', + 'deprecated-unitteset-alias') def visit_call(self, node): """Visit a CallFunc node.""" if hasattr(node, 'func'): @@ -131,6 +137,7 @@ class StdlibChecker(BaseChecker): self._check_open_mode(node) if infer.root().name == 'unittest.case': self._check_redundant_assert(node, infer) + self._check_unittest_alias(node, infer) @utils.check_messages('boolean-datetime') def visit_unaryop(self, node): @@ -166,6 +173,22 @@ class StdlibChecker(BaseChecker): args=(infer.name, node.args[0].value, ), node=node) + def _check_unittest_alias(self, node, infer): + self.config = { + 'deprecated_functions': [ + 'unittest.case.TestCase._deprecate.deprecated_func', + 'unittest.case.TestCase.assertEquals', + 'unittest.case.TestCase.assertNotEquals', + 'unittest.case.TestCase.assertAlmostEquals', + 'unittest.case.TestCase.assertNotAlmostEquals', + 'unittest.case.TestCase.assert_', + ] + } + + if infer.qname() in self.config['deprecated_functions']: + self.add_message('deprecated-unittest-alias', node=node, + args=(node.func.attrname, )) + def _check_datetime(self, node): """ Check that a datetime was infered. If so, emit boolean-datetime warning. |