summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudiu Popa <cpopa@cloudbasesolutions.com>2015-01-04 00:37:54 +0200
committerClaudiu Popa <cpopa@cloudbasesolutions.com>2015-01-04 00:37:54 +0200
commitdcf7e19a00fdbdf00d3d3f6b27eb68c21365680d (patch)
treece7c8c752799217d197424956756dee51ae6ffc2
parent54b3d9f0c9698dbd99f4c9b521f3e4567d5085c4 (diff)
downloadpylint-dcf7e19a00fdbdf00d3d3f6b27eb68c21365680d.tar.gz
Improve a couple of things for redundant-unittest-assert.
Include the bad assert method in the message and improve the test coverage. Also, annotate the test class with a skip decorator, since unittest discovery will believe it's an actual unittest file.
-rw-r--r--ChangeLog5
-rw-r--r--checkers/stdlib.py6
-rw-r--r--test/functional/redundant_unittest_assert.py8
-rw-r--r--test/functional/redundant_unittest_assert.txt9
4 files changed, 21 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 3d48ca5..cdf6572 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -28,6 +28,11 @@ ChangeLog for Pylint
* Fix a false positive with invalid-slots-objects, where the slot entry
was an unicode string on Python 2. Closes issue #421.
+ * Add a new warning, 'redundant-unittest-assert', emitted when using
+ unittest's methods assertTrue and assertFalse with constant value
+ as argument. Patch by Vlad Temian.
+
+
2014-11-23 -- 1.4.0
diff --git a/checkers/stdlib.py b/checkers/stdlib.py
index 8f1965e..216d640 100644
--- a/checkers/stdlib.py
+++ b/checkers/stdlib.py
@@ -93,13 +93,13 @@ class StdlibChecker(BaseChecker):
'midnight UTC. This behaviour was fixed in Python 3.5. '
'See http://bugs.python.org/issue13936 for reference.',
{'maxversion': (3, 5)}),
- 'W1503': ('Redundant use of assertTrue or assertFalse with constant '
+ 'W1503': ('Redundant use of %s with constant '
'value %r',
'redundant-unittest-assert',
'The first argument of assertTrue and assertFalse is'
'a condition. If a constant is passed as parameter, that'
'condition will be always true. In this case a warning '
- 'should be emited.')
+ 'should be emitted.')
}
@utils.check_messages('bad-open-mode', 'redundant-unittest-assert')
@@ -137,7 +137,7 @@ class StdlibChecker(BaseChecker):
isinstance(node.args[0], astroid.Const) and
infer.name in ['assertTrue', 'assertFalse']):
self.add_message('redundant-unittest-assert',
- args=(node.args[0].value, ),
+ args=(infer.name, node.args[0].value, ),
node=node)
def _check_datetime(self, node):
diff --git a/test/functional/redundant_unittest_assert.py b/test/functional/redundant_unittest_assert.py
index 85abd98..4628824 100644
--- a/test/functional/redundant_unittest_assert.py
+++ b/test/functional/redundant_unittest_assert.py
@@ -8,7 +8,7 @@ it should emit a warning message.
import unittest
-
+@unittest.skip("don't run this")
class Tests(unittest.TestCase):
def test_something(self):
''' Simple test '''
@@ -19,6 +19,12 @@ class Tests(unittest.TestCase):
self.assertFalse('I meant assertEqual not assertFalse', some_var)
# +1:[redundant-unittest-assert]
self.assertTrue(True, some_var)
+ # +1:[redundant-unittest-assert]
+ self.assertFalse(False, some_var)
+ # +1:[redundant-unittest-assert]
+ self.assertFalse(None, some_var)
+ # +1:[redundant-unittest-assert]
+ self.assertTrue(0, some_var)
self.assertTrue('should be' in some_var, some_var)
self.assertTrue(some_var, some_var)
diff --git a/test/functional/redundant_unittest_assert.txt b/test/functional/redundant_unittest_assert.txt
index cbe72e4..889d395 100644
--- a/test/functional/redundant_unittest_assert.txt
+++ b/test/functional/redundant_unittest_assert.txt
@@ -1,3 +1,6 @@
-redundant-unittest-assert:17:Tests.test_something:"Redundant use of assertTrue or assertFalse with constant value 'I meant assertEqual not assertTrue'"
-redundant-unittest-assert:19:Tests.test_something:"Redundant use of assertTrue or assertFalse with constant value 'I meant assertEqual not assertFalse'"
-redundant-unittest-assert:21:Tests.test_something:"Redundant use of assertTrue or assertFalse with constant value True"
+redundant-unittest-assert:17:Tests.test_something:"Redundant use of assertTrue with constant value 'I meant assertEqual not assertTrue'"
+redundant-unittest-assert:19:Tests.test_something:"Redundant use of assertFalse with constant value 'I meant assertEqual not assertFalse'"
+redundant-unittest-assert:21:Tests.test_something:"Redundant use of assertTrue with constant value True"
+redundant-unittest-assert:23:Tests.test_something:"Redundant use of assertFalse with constant value False"
+redundant-unittest-assert:25:Tests.test_something:"Redundant use of assertFalse with constant value None"
+redundant-unittest-assert:27:Tests.test_something:"Redundant use of assertTrue with constant value 0" \ No newline at end of file