UPDATE
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
import uuid
|
||||
from unittest.mock import patch
|
||||
|
||||
from django.test import SimpleTestCase, override_settings
|
||||
|
||||
from .adapter import ExternalAPIAdapter
|
||||
|
||||
|
||||
class ExternalAPIAdapterTests(SimpleTestCase):
|
||||
@override_settings(EXTERNAL_API_TIMEOUT=30)
|
||||
@patch("external_api_adapter.adapter.requests.request")
|
||||
def test_request_serializes_uuid_payload_for_json_requests(self, mock_request):
|
||||
mock_request.return_value.status_code = 200
|
||||
mock_request.return_value.json.return_value = {"ok": True}
|
||||
farm_uuid = uuid.uuid4()
|
||||
|
||||
adapter = ExternalAPIAdapter(
|
||||
service_registry=type(
|
||||
"Registry",
|
||||
(),
|
||||
{"get": lambda self, name: {"base_url": "https://example.com", "api_key": "token"}},
|
||||
)()
|
||||
)
|
||||
|
||||
adapter.request(
|
||||
"ai",
|
||||
"/api/farm-alerts/tracker/",
|
||||
method="POST",
|
||||
payload={"farm_uuid": farm_uuid},
|
||||
)
|
||||
|
||||
mock_request.assert_called_once()
|
||||
request_kwargs = mock_request.call_args.kwargs
|
||||
self.assertEqual(request_kwargs["json"], {"farm_uuid": str(farm_uuid)})
|
||||
|
||||
@override_settings(EXTERNAL_API_TIMEOUT=30)
|
||||
@patch("external_api_adapter.adapter.requests.request")
|
||||
def test_request_serializes_uuid_payload_for_multipart_requests(self, mock_request):
|
||||
mock_request.return_value.status_code = 200
|
||||
mock_request.return_value.json.return_value = {"ok": True}
|
||||
farm_uuid = uuid.uuid4()
|
||||
|
||||
adapter = ExternalAPIAdapter(
|
||||
service_registry=type(
|
||||
"Registry",
|
||||
(),
|
||||
{"get": lambda self, name: {"base_url": "https://example.com", "api_key": "token"}},
|
||||
)()
|
||||
)
|
||||
|
||||
adapter.request(
|
||||
"ai",
|
||||
"/api/upload/",
|
||||
method="POST",
|
||||
payload={"farm_uuid": farm_uuid, "__files__": {"image": ("leaf.jpg", b"data", "image/jpeg")}},
|
||||
)
|
||||
|
||||
mock_request.assert_called_once()
|
||||
request_kwargs = mock_request.call_args.kwargs
|
||||
self.assertEqual(request_kwargs["data"], {"farm_uuid": str(farm_uuid)})
|
||||
Reference in New Issue
Block a user