Files
Backend/external_api_adapter/tests.py
T
2026-04-29 02:58:56 +03:30

61 lines
2.1 KiB
Python

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)})