"""Test payment group payment serialization.""" from payment.schemas.payment_group_payment import ( PaymentGroupPaymentDetailSchema, PaymentGroupPaymentOverviewSchema, PaymentGroupPaymentStatusOverviewDataloaderItemSchema, PaymentGroupPaymentStatusOverviewDataloaderSchema, PaymentGroupPaymentStatusOverviewSchema, PaymentGroupPaymentTotalsSchema, ) from tests.utils.factories import PaymentGroupFactory, PaymentGroupPaymentFactory def test_payment_group_payment_detail_schema(): """Test payment group payment detail schema.""" payment_group = PaymentGroupFactory.build() pgp = PaymentGroupPaymentFactory.build(payment_group=payment_group) res = PaymentGroupPaymentDetailSchema().dump(pgp) assert res['payment_group_id'] == payment_group.payment_group_id assert res['payment_group_payment_id'] == pgp.payment_group_payment_id assert res['payment_name'] == pgp.payment_name assert res['account_count'] == pgp.account_count def test_payment_group_payment_overview_schema(): """Test payment group overview schema.""" body = [ { 'account_count': 10, 'currency_code': 'EUR', 'currency_total': 1000.00, 'payment_group_payment_id': 1, }, { 'account_count': 2, 'currency_code': 'GBP', 'currency_total': 200.00, 'payment_group_payment_id': 1, }, ] res = PaymentGroupPaymentOverviewSchema(many=True).dump(body) assert all(r.get('account_count') for r in res) assert all(r.get('currency_code') for r in res) assert all(r.get('currency_total') for r in res) assert all(r.get('payment_group_payment_id') for r in res) def test_payment_group_payment_totals_schema(): """Test payment group payment totals schema.""" body = [ { 'account_count': 10, 'currency_code': 'EUR', 'currency_total': 1000.00, 'payoneer_program_id': 1, 'payment_entity_name': 'AWAL Digital Limited (UK)', }, { 'account_count': 2, 'currency_code': 'GBP', 'currency_total': 200.00, 'payoneer_program_id': 2, 'payment_entity_name': 'AWAL Digital Limited (UK)', }, ] res = PaymentGroupPaymentTotalsSchema(many=True).dump(body) assert all(r.get('account_count') for r in res) assert all(r.get('currency_code') for r in res) assert all(r.get('currency_total') for r in res) assert all(r.get('payoneer_program_id') for r in res) assert all(r.get('payment_entity_name') for r in res) def test_payment_group_payment_status_overview_schema(): """Test payment group payment status overview schema.""" mock_data = { 'number_of_canceled_payments': 1, 'number_of_failed_payments': 1, 'number_of_pending_payments': 2, 'number_of_successful_payments': 1, 'number_of_payments_failed_with_batch': 2, 'payment_group_payment_id': 501, } res = PaymentGroupPaymentStatusOverviewSchema().dump(mock_data) assert res == mock_data def test_payment_group_payment_status_overview_dataloader_item_schema(): """Test payment group payment status overview dataloader item schema.""" mock_data = { 'data': { 'number_of_canceled_payments': 1, 'number_of_failed_payments': 1, 'number_of_pending_payments': 2, 'number_of_successful_payments': 1, 'number_of_payments_failed_with_batch': 2, 'payment_group_payment_id': 501, } } res = PaymentGroupPaymentStatusOverviewDataloaderItemSchema().dump(mock_data) assert res == mock_data def test_payment_group_payment_status_overview_dataloader_schema(): """Test payment group payment status overview dataloader schema.""" mock_data = { 'items': [ { 'data': { 'number_of_canceled_payments': 1, 'number_of_failed_payments': 1, 'number_of_pending_payments': 2, 'number_of_successful_payments': 1, 'number_of_payments_failed_with_batch': 2, 'payment_group_payment_id': 501, } } ] } res = PaymentGroupPaymentStatusOverviewDataloaderSchema().dump(mock_data) assert res == mock_data