0

我正在尝试为 django 中的 webhook 回调编写单元测试。我的应用程序设置为,当我运行一些代码时,它会向我选择的 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 文档,我相当确定仅套接字模块无法做到这一点——我需要一些异步魔法。

4

1 回答 1

1

套接字库不能单独做到这一点。看看python twisted。这应该可以帮助你。虽然我还没有用 django 尝试过。

于 2011-10-26T06:10:26.667 回答