Sto scrivendo un modulo Python che include una determinata API di servizi Web. È tutto REST, quindi relativamente semplice da implementare.Utilizzo di SimpleHTTPServer per il test dell'unità
Tuttavia, ho riscontrato un problema quando si tratta di test delle unità: poiché non eseguo i servizi per cui ho creato questo modulo, non voglio batterli, ma allo stesso tempo, ho bisogno di recuperare dati per eseguire i miei test. Ho guardato SimpleHTTPServer, che sarebbe OK.
Ho risolto parte del problema che avevo, ma ora, poiché non riesco a terminare il thread, ottengo problemi con "indirizzo già in uso" quando si avvia l'applicazione di test più di una volta.
Ecco alcuni esempi di codice
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)
Dove "index.json" è un file JSON finta che ho fatto, che sostituisce la cosa reale. Come posso pulire le cose con garbo dopo la fine del programma?
SimpleHTTPServer dovrebbe essere davvero il modo più semplice. Che tipo di problemi stai avendo? – balpha
Ho riformulato le cose, spero che ora sia più chiaro. – Einar