Durante las pruebas de integración, he notado que en realidad trabajo en casos de uso recurrentes con API relajantes (o en interfaces HTTP generales) que verifico aquí y allá con bash + cURL.
Comienza a verse bastante desordenado y se vuelve más difícil de mantener. ¿Por qué entregar desorden?
Los casos de uso típicos son:
- Compruebe que una URL devuelve el código de respuesta http, por ejemplo, 200
- Verifique que el tipo de contenido coincida con el MIME que necesita en ese caso
- Compruebe que el contenido devuelto coincide con algún patrón o pasa un procedimiento de validación abstracta
Lo que he encontrado hasta ahora y considero una opción viable sin reinventar la rueda, es:
- pruebe PyCurl, con la esperanza de que implemente completamente todas las opciones de cURL especialmente. proxy pero también otros interruptores que pueda necesitar
- use la unidad de prueba incorporada de Python
Entonces podría tener, por ejemplo, una prueba de unidad por servicio que me gustaría verificar:
import unittest, pycurl
class TestService (unittest.TestCase):
def test_1(self):
self.assertEqual(pycurl.returncode("some_url"), 200)
def test_2(self):
self.assertTrue(pycurl.response("some_url").matches ("xxx") )
def test_3(self):
self.assertTrue (pycurl.ContentType("some_url").equal("xxx"))
if __name__ == '__main__':
unittest.main()
¿Tiene sentido o hay herramientas más de alto nivel (pero no demasiado complejas para recoger e integrar)?