"""Functional tests for fetching Wise Transfer requirements.""" from unittest.mock import MagicMock, patch from collaborator.models.rds.recipient_persister import RecipientPersister from tests.testutils import db from tests.testutils.transferwise_fixtures import TRANSFER_REQUIREMENTS_RESPONSE @patch("collaborator.models.transferwise.requests") @patch.object(RecipientPersister, "get_vendor_id_by_transferwise_id") @db.test_schema_default_seed def test_get_transfer_requirements( get_vendor_id_by_transferwise_id_mock, mock_transferwise, auth_client, mock_account ): """Test fetching transfer req.""" mock_response = MagicMock() mock_response.status_code = 201 mock_response.json.return_value = TRANSFER_REQUIREMENTS_RESPONSE mock_transferwise.post.return_value = mock_response get_vendor_id_by_transferwise_id_mock.return_value = mock_account.id result = auth_client.post( "/transferwise/transfer-requirements", json={"transfers": [{"currency": "USD", "transfer": {"targetAccount": 1234}}]}, ) assert result.status_code == 200 @db.test_schema_default_seed def test_get_transfer_requirements_missing_transfers(auth_client, mock_account): """Expect a 400 when transfers is absent.""" result = auth_client.post( "/transferwise/transfer-requirements", json={}, ) assert result.status_code == 400