我正在編寫一個封裝了某個Web服務API的Python模塊。這是所有REST,實現起來相對簡單。使用SimpleHTTPServer進行單元測試
但是,在單元測試中我發現了一個問題:因爲我沒有運行我爲此模塊創建的服務,所以我不想錘擊它們,但同時我需要檢索數據來運行我的測試。我看着SimpleHTTPServer,這將是確定的。
我解決了部分問題,但現在,因爲我似乎無法終止線程,所以在啓動測試應用程序時,我多次遇到「地址已在使用中」的問題。
下面是一些示例代碼
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)
其中「index.json」是我做了一個模擬的JSON文件,它替代了真實的東西。程序終止後,我如何優雅地清理事物?
SimpleHTTPServer應該是最簡單的方法。你有什麼樣的問題? – balpha 2009-12-31 12:24:59
我重寫了一些東西,我希望現在更清楚。 – Einar 2009-12-31 12:53:20