From e2a24ce95ec9adbac6380759dc8781f9bb9cc464 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri, 17 Jan 2025 21:06:02 -0800 Subject: [PATCH] Use pytest_httpx --- src/documents/tests/test_workflows.py | 33 ++++++++++++--------------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/src/documents/tests/test_workflows.py b/src/documents/tests/test_workflows.py index 23aa8ee98..82728b453 100644 --- a/src/documents/tests/test_workflows.py +++ b/src/documents/tests/test_workflows.py @@ -11,6 +11,7 @@ from guardian.shortcuts import assign_perm from guardian.shortcuts import get_groups_with_perms from guardian.shortcuts import get_users_with_perms from httpx import HTTPStatusError +from pytest_httpx import HTTPXMock from rest_framework.test import APITestCase from documents.signals.handlers import run_workflows @@ -2670,8 +2671,12 @@ class TestWorkflows( mock_post.assert_called_once() - @mock.patch("httpx.post") - def test_send_webhook_data_and_json(self, mock_post): + +class TestWebhookSend: + def test_send_webhook_data_and_json( + self, + httpx_mock: HTTPXMock, + ): """ GIVEN: - Nothing @@ -2680,9 +2685,8 @@ class TestWorkflows( THEN: - data is sent as form-encoded and json, respectively """ - mock_post.return_value = mock.Mock( - status_code=200, - json=mock.Mock(return_value={"status": "ok"}), + httpx_mock.add_response( + content=b"ok", ) send_webhook( @@ -2691,24 +2695,17 @@ class TestWorkflows( headers={}, files=None, ) + assert httpx_mock.get_request().content == b"Test message" + httpx_mock.reset() - mock_post.assert_called_once_with( - "http://paperless-ngx.com", - data="Test message", - headers={}, - files=None, + httpx_mock.add_response( + json={"status": "ok"}, ) - send_webhook( url="http://paperless-ngx.com", data={"message": "Test message"}, headers={}, files=None, ) - - mock_post.assert_called_with( - "http://paperless-ngx.com", - json={"message": "Test message"}, - headers={}, - files=None, - ) + assert httpx_mock.get_request().headers["Content-Type"] == "application/json" + assert httpx_mock.get_request().content == b'{"message":"Test message"}'