Estoy escribiendo un módulo de Python que finaliza una cierta API de servicio web. Es todo REST, por lo que es relativamente fácil de implementar.Usando SimpleHTTPServer para pruebas de unidades
Sin embargo, encontré un problema cuando se trata de pruebas unitarias: como no ejecuto los servicios para los que hice este módulo, no quiero martillarlos, pero al mismo tiempo, necesito recuperarlos. datos para ejecutar mis pruebas. Miré SimpleHTTPServer, que estaría bien.
Resolví parte del problema que tenía, pero ahora, como parece que no puedo terminar el hilo, tengo problemas con la "dirección que ya está en uso" cuando ejecuto la aplicación de prueba más de una vez.
He aquí algunos ejemplos de código
PORT = 8001
handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), handler)
httpd_thread = threading.Thread(target=httpd.serve_forever)
httpd_thread.setDaemon(True)
httpd_thread.start()
api_data = urllib.urlopen("http://localhost:8001/post/index.json")
print "Data start:"
print json.load(api_data)
Donde "index.json" es un archivo JSON maqueta que hice que sustituye a la cosa real. ¿Cómo puedo limpiar las cosas elegantemente después de que el programa termina?
SimpleHTTPServer debería ser realmente la forma más fácil. ¿Qué tipo de problemas tienes? – balpha
Reescribí las cosas, espero que esté más claro ahora. – Einar