特定のWebサービスAPIをラップするPythonモジュールを作成しています。すべてRESTなので、実装は比較的簡単です。
ただし、単体テストに関しては問題が見つかりました。このモジュールを作成したサービスを実行していないため、それらをハンマーで叩きたくないのですが、同時に、実行するためにデータを取得する必要があります。テスト。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ファイルであり、本物を置き換えます。プログラムが終了した後、どうすれば優雅に物事をきれいにできますか?