summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVlad Temian <vladtemian@gmail.com>2014-11-22 15:01:53 +0200
committerVlad Temian <vladtemian@gmail.com>2014-11-22 15:01:53 +0200
commit9583af93f45602ce67880ea781298b2e1114b219 (patch)
treee7427d40cc03f6be11c796ec1a960c47ab9b1681
parent0442fb6e49a9e1b0227cd1db78d339f1fe6788ae (diff)
downloadpylint-9583af93f45602ce67880ea781298b2e1114b219.tar.gz
Added check for redundant assert in unittest
-rw-r--r--checkers/stdlib.py27
1 files changed, 21 insertions, 6 deletions
diff --git a/checkers/stdlib.py b/checkers/stdlib.py
index d8b5fde..0b5a63b 100644
--- a/checkers/stdlib.py
+++ b/checkers/stdlib.py
@@ -48,16 +48,24 @@ class StdlibChecker(BaseChecker):
'midnight UTC. This behaviour was fixed in Python 3.5. '
'See http://bugs.python.org/issue13936 for reference.',
{'maxversion': (3, 5)}),
- }
-
- @utils.check_messages('bad-open-mode')
+ 'W1503': ('Redundant use of assertTrue or assertFalse with constant '
+ 'value %r',
+ 'redundant-assert',
+ 'Using assertTrue or assertFalse when the first'
+ 'argument is literal, is redundant.')
+ }
+
+ @utils.check_messages('bad-open-mode', 'redundant-assert')
def visit_callfunc(self, node):
"""Visit a CallFunc node."""
if hasattr(node, 'func'):
infer = utils.safe_infer(node.func)
- if infer and infer.root().name == OPEN_MODULE:
- if getattr(node.func, 'name', None) in ('open', 'file'):
- self._check_open_mode(node)
+ if infer:
+ if infer.root().name == OPEN_MODULE:
+ if getattr(node.func, 'name', None) in ('open', 'file'):
+ self._check_open_mode(node)
+ if infer.root().name == 'unittest.case':
+ self._check_redundant_assert(node, infer)
@utils.check_messages('boolean-datetime')
def visit_unaryop(self, node):
@@ -77,6 +85,13 @@ class StdlibChecker(BaseChecker):
for value in node.values:
self._check_datetime(value)
+ def _check_redundant_assert(self, node, infer):
+ if (infer.name in ['assertTrue', 'assertFalse'] and
+ isinstance(infer, astroid.bases.BoundMethod) and
+ isinstance(node.args[0], astroid.node_classes.Const)):
+ self.add_message('redundant-assert', args=(node.args[0].value,),
+ node=node)
+
def _check_datetime(self, node):
""" Check that a datetime was infered.
If so, emit boolean-datetime warning.