django で webhooks コールバックの単体テストを作成しようとしています。私のアプリケーションは、少しのコードを実行すると、選択した URL に POST 要求を送信するように設定されています。これが、私がテストしようとしている機能です。
このリクエストをリッスンし、送信されたかどうかを通知するソケットをセットアップしたいと思います。これは次のようになると思います:
import socket
def webHooksTest(self):
targetURL = 'http://127.0.0.1:8000'
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind('localhost', 8000)
s.listen(1)
s.accept()
# Code that triggers POST request goes here
self.assertNotEqual(s.recvd(), None, "WebHooks URL did not receive anything")
このままでは、プログラムが s.accept() 行でハングアップし、リクエストを送信しないため、まったく機能しません。
私は非同期プログラミングにまったく慣れていないので、アドバイスを利用できます。Python のドキュメントを調べると、socket モジュールだけではこれを実行できないと確信しています。非同期の魔法が必要です。