我正在尝试为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文档,我很确定单独的套接字模块不能这样做 - 我需要一些异步魔法。