Я пытаюсь написать модульный тест для обратного вызова webhooks в django. Мое приложение настроено так, что когда я запускаю немного кода, оно отправляет запрос POST на URL-адрес моего выбора - это функциональность, которую я пытаюсь протестировать.
Я бы хотел установить сокет, который прослушивает этот запрос и сообщает, был ли он отправлен или нет. Я полагаю, это выглядит примерно так:
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 я вполне уверен, что один модуль сокета не может сделать это - мне нужна некоторая асинхронная магия.