"""Payment Entity Payoneer Program model.""" from abacus_account.models.payment_entity_payoneer_program import \ PaymentEntityPayoneerProgram from tests.utils.factories import PaymentEntityPayoneerProgramFactory, \ ReferencePayoneerProgramFactory def test_get_payment_entity_payoneer_program_by_payment_entity_id( reference_payment_entity_fixture ): """Test GET reference_payoneer_program by payoneer_program_id.""" payoneer_program = ReferencePayoneerProgramFactory.create(payoneer_program_id=101) payment_entity_payoneer_program = PaymentEntityPayoneerProgramFactory.create( reference_payment_entity_id=6, payoneer_program_id=payoneer_program.payoneer_program_id ) result = PaymentEntityPayoneerProgram.get_by_payment_entity_id( payment_entity_payoneer_program.reference_payment_entity_id ) assert len(result) == 1 record = result[0] assert record.payment_entity_payoneer_program_id == \ payment_entity_payoneer_program.payment_entity_payoneer_program_id assert record.payment_currency == payment_entity_payoneer_program.payment_currency assert record.payoneer_program_id == \ payment_entity_payoneer_program.payoneer_program_id assert record.reference_payment_entity_id == \ payment_entity_payoneer_program.reference_payment_entity_id def test_get_by_criteria(fresh_db, reference_payment_entity_fixture): """Get reference_payoneer_program by payoneer_program_id and payment currency.""" gbp_payoneer_program = ReferencePayoneerProgramFactory.create() gbp_payment_entity_payoneer_program = PaymentEntityPayoneerProgramFactory.create( payoneer_program_id=gbp_payoneer_program.payoneer_program_id, payment_currency='GBP', reference_payment_entity_id=5 ) usd_payoneer_program = ReferencePayoneerProgramFactory.create( funding_currency='USD') PaymentEntityPayoneerProgramFactory.create( payoneer_program_id=usd_payoneer_program.payoneer_program_id, reference_payment_entity_id=5 ) result = PaymentEntityPayoneerProgram.get_by_criteria( payment_entity_id=5, payment_currency='GBP' ) assert result.payment_entity_payoneer_program_id ==\ gbp_payment_entity_payoneer_program.payment_entity_payoneer_program_id assert result.payoneer_program_id == gbp_payoneer_program.payoneer_program_id assert result.payment_currency == 'GBP' result = PaymentEntityPayoneerProgram.get_by_criteria( payment_entity_id=5, payment_currency='NOK' ) assert not result