NoAssertTrueForComparisonsRule
Finds incorrect use of assertTrue
when the intention is to compare two values.
These calls are replaced with assertEqual
.
Comparisons with True, False and None are replaced with one-argument
calls to assertTrue
, assertFalse
and assertIsNone
.
Message
“assertTrue” does not compare its arguments, use “assertEqual” or other appropriate functions.
Has Autofix: Yes
VALID Code Examples
# 1:
self.assertTrue(a == b)
# 2:
self.assertTrue(data.is_valid(), "is_valid() method")
# 3:
self.assertTrue(validate(len(obj.getName(type=SHORT))))
# 4:
self.assertTrue(condition, message_string)
INVALID Code Examples
# 1:
self.assertTrue(a, 3)
Autofix:
---
+++
@@ -1 +1 @@
-self.assertTrue(a, 3)
+self.assertEqual(a, 3)
# 2:
self.assertTrue(hash(s[:4]), 0x1234)
Autofix:
---
+++
@@ -1 +1 @@
-self.assertTrue(hash(s[:4]), 0x1234)
+self.assertEqual(hash(s[:4]), 0x1234)
# 3:
self.assertTrue(list, [1, 3])
Autofix:
---
+++
@@ -1 +1 @@
-self.assertTrue(list, [1, 3])
+self.assertEqual(list, [1, 3])
# 4:
self.assertTrue(optional, None)
Autofix:
---
+++
@@ -1 +1 @@
-self.assertTrue(optional, None)
+self.assertIsNone(optional)
# 5:
self.assertTrue(b == a, True)
Autofix:
---
+++
@@ -1 +1 @@
-self.assertTrue(b == a, True)
+self.assertTrue(b == a)
# 6:
self.assertTrue(b == a, False)
Autofix:
---
+++
@@ -1 +1 @@
-self.assertTrue(b == a, False)
+self.assertFalse(b == a)