0

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 モジュールだけではこれを実行できないと確信しています。非同期の魔法が必要です。

4

1 に答える 1

1

ソケット ライブラリだけではこれを行うことはできません。python twistedを見てください。これはあなたを助けるはずです。私はまだdjangoで試していませんが。

于 2011-10-26T06:10:26.667 に答える