"""Unit tests for ledger_contract_advance_applied handlers.""" from unittest.mock import patch from owsresponse import response @patch('ledger.blueprints.ledger_contract_advance_applied.logic') def test_create_contract_advance_ledger_entries(mock_logic, fixture_client): """Test to create a contract_advance ledger entries.""" contract_advance_id = 1 mock_post_request = { 'abacus_event_id': 7, 'account_id': 1, 'contract_id': 1, 'statement_period_id': 1, 'advance_amount': '150.00', 'advance_currency_code': 'USD', 'account_payment_currency_code': 'AUD', 'exchange_rate': '1.90', 'vat_amount': '20.00', 'withholding_tax_amount': '-10.00', 'amount_after_withholding_and_vat': '140.00', 'us_source_income_rate': '90.00', 'worksheet_payment_contract_advance_id': 1, 'advance_amount_payee_currency': '112.00', 'amount_after_withholding_and_vat_payee_currency': '100.00', 'withholding_tax_amount_payee_currency': '-8.00', 'vat_amount_payee_currency': '10.00', } mock_logic.create_contract_advance_ledger_entries.return_value = response.Response( message='ok', status=201 ) res = fixture_client.post( f'/ledger-contract-advance-applied/contract-advance/{contract_advance_id}/paid/', json=mock_post_request, ) assert res.status_code == 201 mock_logic.create_contract_advance_ledger_entries.assert_called_once() @patch('ledger.blueprints.ledger_contract_advance_applied.logic') def test_get_ledger_contract_advance_applied_by_contract_advance( mock_logic, fixture_client ): """Test to GET ledger_contract_advance_applied by parent contract_advance.""" contract_advance_id = 1 mock_logic.get_by_contract_advance_id.return_value = response.Response( message='ok', status=200 ) res = fixture_client.get( f'/ledger-contract-advance-applied/contract-advance/{contract_advance_id}' ) assert res.status_code == 200 mock_logic.get_by_contract_advance_id.assert_called_once_with(contract_advance_id) @patch('ledger.blueprints.ledger_contract_advance_applied.logic') def test_get_ledger_contract_advance_applied_debit_by_worksheet( mock_logic, fixture_client ): """Test to GET ledger_contract_advance_applied by parent worksheet.""" worksheet_payment_contract_advance_id = 1 mock_logic.get_by_worksheet_payment_contract_advance_id.return_value = ( response.Response(message='ok', status=200) ) res = fixture_client.get( f'/ledger-contract-advance-applied/worksheet' f'/{worksheet_payment_contract_advance_id}/debit' ) assert res.status_code == 200 mock_logic.get_by_worksheet_payment_contract_advance_id.assert_called_once_with( worksheet_payment_contract_advance_id, 'debit' ) @patch('ledger.blueprints.ledger_contract_advance_applied.logic') def test_get_ledger_contract_advance_applied_credit_by_worksheet( mock_logic, fixture_client ): """Test to GET ledger_contract_advance_applied by parent worksheet.""" worksheet_payment_contract_advance_id = 1 mock_logic.get_by_worksheet_payment_contract_advance_id.return_value = ( response.Response(message='ok', status=200) ) res = fixture_client.get( f'/ledger-contract-advance-applied/worksheet' f'/{worksheet_payment_contract_advance_id}/credit' ) assert res.status_code == 200 mock_logic.get_by_worksheet_payment_contract_advance_id.assert_called_once_with( worksheet_payment_contract_advance_id, 'credit' )