.. _NoAssertTrueForComparisonsRule:

==============================
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:







.. code-block:: python

            self.assertTrue(a == b)




# 2:







.. code-block:: python

            self.assertTrue(data.is_valid(), "is_valid() method")




# 3:







.. code-block:: python

            self.assertTrue(validate(len(obj.getName(type=SHORT))))




.. container:: toggle


    # 4:







    .. code-block:: python

                self.assertTrue(condition, message_string)





---------------------
INVALID Code Examples
---------------------

# 1:







.. code-block:: python

            self.assertTrue(a, 3)




Autofix:

.. code-block:: python

    --- 
    +++ 
    @@ -1 +1 @@
    -self.assertTrue(a, 3)
    +self.assertEqual(a, 3)

# 2:







.. code-block:: python

            self.assertTrue(hash(s[:4]), 0x1234)




Autofix:

.. code-block:: python

    --- 
    +++ 
    @@ -1 +1 @@
    -self.assertTrue(hash(s[:4]), 0x1234)
    +self.assertEqual(hash(s[:4]), 0x1234)

# 3:







.. code-block:: python

            self.assertTrue(list, [1, 3])




Autofix:

.. code-block:: python

    --- 
    +++ 
    @@ -1 +1 @@
    -self.assertTrue(list, [1, 3])
    +self.assertEqual(list, [1, 3])

.. container:: toggle


    # 4:







    .. code-block:: python

                self.assertTrue(optional, None)




    Autofix:

    .. code-block:: python

        --- 
        +++ 
        @@ -1 +1 @@
        -self.assertTrue(optional, None)
        +self.assertIsNone(optional)


    # 5:







    .. code-block:: python

                self.assertTrue(b == a, True)




    Autofix:

    .. code-block:: python

        --- 
        +++ 
        @@ -1 +1 @@
        -self.assertTrue(b == a, True)
        +self.assertTrue(b == a)


    # 6:







    .. code-block:: python

                self.assertTrue(b == a, False)




    Autofix:

    .. code-block:: python

        --- 
        +++ 
        @@ -1 +1 @@
        -self.assertTrue(b == a, False)
        +self.assertFalse(b == a)

