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)