"""Functional tests for getting collaborator transferwise transactions.""" import json from oto import status as response_code import pytest from tests.testutils import db, mock_auth TEST_VENDOR = 120594 @pytest.fixture(autouse=True) def _mock_auth(mocker): mock_auth(mocker, TEST_VENDOR) @db.test_schema_default_seed def test_get_collaborator_payments_with_pending_status(auth_client): """Test getting collaborator payments.""" result = auth_client.get( "/collaborators/10/payments", query_string={ "vendor_id": TEST_VENDOR, "payment_statuses": "incoming_payment_waiting", }, ) expected_result = { "items": [ { "collaborator_id": 10, "conversion_rate": None, "created_date": "2020-05-04T03:03:01", "id": 17, "profile_id": 12341235, "quote_id": "17171717-1717-1717-1717-171717171717", "recipient_id": 22223333, "source_amount": 40.0, "source_currency": "USD", "status": "incoming_payment_waiting", "status_updated_date": "2020-05-04T03:04:01", "target_amount": 40.0, "target_currency": "USD", "transfer_id": 17, "transferwise_batch_id": 5, "transferwise_fee": 0.25, "wire_fee": 0.25, } ], "pagination": {"total_records": 1, "type": "standard"}, } result_data = json.loads(result.data.decode()) assert result.status_code == response_code.OK assert result_data == expected_result @db.test_schema_default_seed def test_get_collaborator_payments_with_failed_status(auth_client): """Test getting collaborator payments.""" result = auth_client.get( "/collaborators/10/payments", query_string={"vendor_id": TEST_VENDOR, "payment_statuses": "cancelled"}, ) expected_result = { "items": [ { "collaborator_id": 10, "conversion_rate": None, "created_date": "2020-05-04T03:02:01", "id": 18, "profile_id": 12341235, "quote_id": "18181818-1818-1818-1818-181818181818", "recipient_id": 22223333, "source_amount": 40.0, "source_currency": "USD", "status": "cancelled", "status_updated_date": "2020-05-04T03:04:01", "target_amount": 40.0, "target_currency": "USD", "transfer_id": 18, "transferwise_batch_id": 5, "transferwise_fee": 0.25, "wire_fee": 0.25, } ], "pagination": {"total_records": 1, "type": "standard"}, } result_data = json.loads(result.data.decode()) assert result.status_code == response_code.OK assert result_data == expected_result @db.test_schema_default_seed def test_get_collaborator_payments_mixed_statuses(auth_client): """Test getting collaborator payments.""" statuses = "incoming_payment_waiting,cancelled" result = auth_client.get( "/collaborators/10/payments", query_string={"vendor_id": TEST_VENDOR, "payment_statuses": statuses}, ) expected_result = { "items": [ { "collaborator_id": 10, "conversion_rate": None, "created_date": "2020-05-04T03:03:01", "id": 17, "profile_id": 12341235, "quote_id": "17171717-1717-1717-1717-171717171717", "recipient_id": 22223333, "source_amount": 40.0, "source_currency": "USD", "status": "incoming_payment_waiting", "status_updated_date": "2020-05-04T03:04:01", "target_amount": 40.0, "target_currency": "USD", "transfer_id": 17, "transferwise_batch_id": 5, "transferwise_fee": 0.25, "wire_fee": 0.25, }, { "collaborator_id": 10, "conversion_rate": None, "created_date": "2020-05-04T03:02:01", "id": 18, "profile_id": 12341235, "quote_id": "18181818-1818-1818-1818-181818181818", "recipient_id": 22223333, "source_amount": 40.0, "source_currency": "USD", "status": "cancelled", "status_updated_date": "2020-05-04T03:04:01", "target_amount": 40.0, "target_currency": "USD", "transfer_id": 18, "transferwise_batch_id": 5, "transferwise_fee": 0.25, "wire_fee": 0.25, }, ], "pagination": {"total_records": 2, "type": "standard"}, } result_data = json.loads(result.data.decode()) assert result.status_code == response_code.OK assert result_data == expected_result @db.test_schema_default_seed def test_get_collaborator_payments(auth_client): """Test getting collaborator payments.""" result = auth_client.get( "/collaborators/10/payments", query_string={"vendor_id": TEST_VENDOR} ) expected_result = { "items": [ { "collaborator_id": 10, "conversion_rate": None, "created_date": "2020-05-04T03:03:01", "id": 17, "profile_id": 12341235, "quote_id": "17171717-1717-1717-1717-171717171717", "recipient_id": 22223333, "source_amount": 40.0, "source_currency": "USD", "status": "incoming_payment_waiting", "status_updated_date": "2020-05-04T03:04:01", "target_amount": 40.0, "target_currency": "USD", "transfer_id": 17, "transferwise_batch_id": 5, "transferwise_fee": 0.25, "wire_fee": 0.25, }, { "collaborator_id": 10, "conversion_rate": None, "created_date": "2020-05-04T03:02:01", "id": 18, "profile_id": 12341235, "quote_id": "18181818-1818-1818-1818-181818181818", "recipient_id": 22223333, "source_amount": 40.0, "source_currency": "USD", "status": "cancelled", "status_updated_date": "2020-05-04T03:04:01", "target_amount": 40.0, "target_currency": "USD", "transfer_id": 18, "transferwise_batch_id": 5, "transferwise_fee": 0.25, "wire_fee": 0.25, }, ], "pagination": {"total_records": 2, "type": "standard"}, } result_data = json.loads(result.data.decode()) assert result.status_code == response_code.OK assert result_data == expected_result