Приложение: - Flask Python: - 3.6.7 Тестовая среда: - PyTest
У меня есть метод generi c, определенный в следующем пространстве имен и имеющий следующую структуру
my_app.contrib.util.request.GenericRequest
class GenericRequest:
def __init__(self, method, url=REDIRECT_URL, **kwargs):
self.method = method
self.url = url
self.kwargs = kwargs
def send_request(self):
if self.method == "head":
self.kwargs.setdefault("allow_redirects", False)
with Session() as session:
return session.request(method=self.method, url=self.url, **self.kwargs)
Я вызываю этот класс методов из очереди задач сельдерея следующим образом, которая имеет следующее пространство имен
my_app.task_queue
@app.task
def call_remote(**kwargs) -> str:
response = GenericRequest(
method="post",
url=remote_app_url,
timeout=10,
params={
"type": 10
},
headers=headers,
cert=ca_file,
).send_request()
if response.status_code == 200:
remote_message = (response.json()["message"])
И я хочу высмеять GenericRequest
из pytest
Попробовал исправление и не удалось, и оно не исправляется GenericRequest
def test_get_remote_message(client: Client) -> None:
// more code here
with patch("my_app.task_queue.GenericRequest") as mock:
instance = mock.return_value
instance.send_request = {"message": ""}
for url in urls:
client.post(url) # This will call the task queue's GeneriRequest
Также пробовал со следующим пространством имен my_app.contrib.util.request.GenericRequest
и получил ошибку. Как смоделировать GenericRequest, который вызывается из task_queue через PyTest