diff options
author | Claudiu Popa <cpopa@cloudbasesolutions.com> | 2015-01-04 00:37:54 +0200 |
---|---|---|
committer | Claudiu Popa <cpopa@cloudbasesolutions.com> | 2015-01-04 00:37:54 +0200 |
commit | dcf7e19a00fdbdf00d3d3f6b27eb68c21365680d (patch) | |
tree | ce7c8c752799217d197424956756dee51ae6ffc2 | |
parent | 54b3d9f0c9698dbd99f4c9b521f3e4567d5085c4 (diff) | |
download | pylint-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-- | ChangeLog | 5 | ||||
-rw-r--r-- | checkers/stdlib.py | 6 | ||||
-rw-r--r-- | test/functional/redundant_unittest_assert.py | 8 | ||||
-rw-r--r-- | test/functional/redundant_unittest_assert.txt | 9 |
4 files changed, 21 insertions, 7 deletions
@@ -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 |