web-dev-qa-db-fra.com

assertTrue () dans pytest pour affirmer des listes vides

Existe-t-il un moyen d'utiliser assertTrue() ou assertFalse() comme une fonction dans pytest pour python unittests? J'ai une fonction qui retourne une liste d'éléments. Si la liste est vide, le test doit échouer lors de l'assertion.

Y a-t-il quelque chose comme ci-dessous:

assertFalse(function_returns_list()), "the list is non empty, contains error elements"
8
cool77

Pourquoi ne pas tester la longueur de la liste:

assert len(function_returns_list()) == 0, "the list is non empty"
14
Anton Strogonoff

Vous pouvez assert list pour confirmer que la liste n'est pas vide, ou assert not list pour confirmer que la liste est vide:

>>> assert not []
>>> assert []
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError
>>> assert [1, 2, 3]

Donc, dans votre cas, vous pouvez simplement écrire:

assert not function_returns_list()

Vous pouvez en savoir plus sur Truth Value Testing sur python.org.

9
sashk