使用套接字测试出站HTTP调用?

2024-10-02 14:18:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为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模块无法做到这一点——我需要一些异步魔法。你知道吗


Tags: django代码importself功能应用程序urldef