Respuestas:
¡Buena pregunta!
En realidad, en Python 2.6, tanto assertEqual
y assertEquals
son los alias de conveniencia a failUnlessEqual
. La fuente los declara así:
# Synonyms for assertion methods
assertEqual = assertEquals = failUnlessEqual
En Python 3 , hasta su punto, failUnlessEqual
está explícitamente en desuso. assertEquals
lleva este comentario :-)
# Sinónimos para métodos de afirmación
# Los plurales no están documentados. Guárdelos de esa manera para desalentar el uso.
# No agregue más. No quitar.
# Pasar por un ciclo de desaprobación en estos molestaría a muchas personas.
Entonces, el resultado parece ser que debes usar lo que quieras para Python 2.x, pero tender a assertEqual
Python 3.
Una actualización 3.3: de 26.3.7.1.1. Alias obsoletos :
Por razones históricas, algunos de los métodos TestCase tenían uno o más alias que ahora están en desuso. La siguiente tabla enumera los nombres correctos junto con sus alias obsoletos:
Method Name | Deprecated alias | Deprecated alias
--------------+------------------+-----------------
assertEqual() | failUnlessEqual | assertEquals
...
No solo para Python 3.x, ya que Python 2.7 también assertEquals
ha quedado en desuso:
Method Name | Deprecated alias(es)
_________________________________________________________
assertEqual() | failUnlessEqual, assertEquals
Creo que esto era tensión entre la "única forma obvia de hacerlo" frente a "alias para hacer que el código general fluya semánticamente". Personalmente encontré que me gusta leer
failIf(some_condition)
encima
assertFalse(some_condition)
pero me gustó
assertEqual(a, b)
sobre los otros dos ( assertEquals(a, b)
molesta mi sentido de la gramática).
La "única forma obvia de hacerlo" ha tenido prioridad en el futuro.
No encuentro ninguna mención de afirmarEquals en http://docs.python.org/library/unittest.html . Sin embargo, cuando importo TestCase y luego hago una "ayuda (TestCase)", aparece en la lista. Creo que es solo un sinónimo de conveniencia.
Es casi lo mismo, excepto que afirmar Equals se repica. Se recomienda utilizar afirmarEqual como aquí:
# Synonyms for assertion methods
# The plurals are undocumented. Keep them that way to discourage use.
# Do not add more. Do not remove.
# Going through a deprecation cycle on these would annoy many people.
assertEquals = assertEqual
Fuente en línea: https://github.com/python/cpython/blob/e42b705188271da108de42b55d9344642170aa2b/Lib/lib2to3/fixes/fix_asserts.py
assertEquals
. Sin embargo, gramaticalmente, igual es una forma singular (tercera persona) de un verbo, no un plural. Creo que entendiste correctamente lo que quiso decir el escritor de comentarios, pero la palabra 'plural' está equivocada.