Ces réponses existent depuis longtemps, mais je pense que le moyen le plus simple et le plus lisible est d'utiliser unittest pour sa fonction beaucoup de belles affirmations sans l'utiliser pour la structure de test.
Obtenir les assertions, ignorer le reste de unittest.TestCase
(sur la base de cette réponse )
import unittest
assertions = unittest.TestCase('__init__')
Faites quelques affirmations
x = 0.00000001
assertions.assertAlmostEqual(x, 0) # pass
assertions.assertEqual(x, 0) # fail
# AssertionError: 1e-08 != 0
Mise en œuvre du test de déballage automatique des questions originales
Utilisez simplement * pour décompresser votre valeur de retour sans avoir à introduire de nouveaux noms.
i_return_tuple_of_two_floats = lambda: (1.32, 2.4)
assertions.assertAlmostEqual(*i_return_tuple_of_two_floats()) # fail
# AssertionError: 1.32 != 2.4 within 7 places
4 votes
Py.test a maintenant une fonctionnalité qui fait cela.
2 votes
Voir cette réponse pour une description de cette fonctionnalité