diff --git a/tests/test_reports_accrual.py b/tests/test_reports_accrual.py index f99706c6276d5216e1ab5b36ff3462a80249ef89..a17fd43e90eebcca6a8295699fea818bb5b11bcc 100644 --- a/tests/test_reports_accrual.py +++ b/tests/test_reports_accrual.py @@ -447,7 +447,8 @@ def test_balance_report(accrual_postings, invoice, expected, caplog): check_output(output, [invoice, expected]) def test_outgoing_report(accrual_postings, caplog): - output = run_outgoing('rt:510', accrual_postings) + rt_client = RTClient() + output = run_outgoing('rt:510', accrual_postings, rt_client) rt_url = RTClient.DEFAULT_URL[:-9] rt_id_url = rf'\b{re.escape(f"{rt_url}Ticket/Display.html?id=510")}\b' contract_url = rf'\b{re.escape(f"{rt_url}Ticket/Attachment/4000/4000/contract.pdf")}\b' @@ -455,10 +456,9 @@ def test_outgoing_report(accrual_postings, caplog): check_output(output, [ r'^PAYMENT FOR APPROVAL:$', r'^REQUESTOR: Mx\. 510 $', + r'^PAYMENT TO: Hon\. Mx\. 510$', r'^TOTAL TO PAY: \$280\.00$', fr'^AGREEMENT: {contract_url}', - r'^PAYMENT TO: Hon\. Mx\. 510$', - r'^PAYMENT METHOD: payment method 510$', r'^BEANCOUNT ENTRIES:$', # For each transaction, check for the date line, a metadata, and the # Expenses posting. @@ -469,6 +469,11 @@ def test_outgoing_report(accrual_postings, caplog): fr'^\s+contract: "{contract_url}"$', r'^\s+Expenses:FilingFees\s+60\.00 USD$', ]) + assert rt_client.edits == {'510': { + 'CF_payment-amount': 'USD 280.00', + 'CF_payment-method': 'USD ACH', + }} + assert 'payment-method:' not in output.getvalue() def test_outgoing_report_custom_field_fallbacks(accrual_postings, caplog): rt_client = RTClient(want_cfs=False) @@ -478,26 +483,38 @@ def test_outgoing_report_custom_field_fallbacks(accrual_postings, caplog): r'^PAYMENT FOR APPROVAL:$', r'^REQUESTOR: $', r'^PAYMENT TO:\s*$', - r'^PAYMENT METHOD:\s*$', ]) def test_outgoing_report_fx_amounts(accrual_postings, caplog): - output = run_outgoing('rt:520 rt:525', accrual_postings) + rt_client = RTClient() + output = run_outgoing('rt:520 rt:525', accrual_postings, rt_client) assert not caplog.records check_output(output, [ r'^PAYMENT FOR APPROVAL:$', r'^REQUESTOR: Mx\. 520 $', r'^TOTAL TO PAY: 1,000\.00 EUR \(\$1,100.00\)$', ]) + assert rt_client.edits == {'520': { + 'CF_payment-amount': 'EUR 1,000.00 ($1,100.00)', + 'CF_payment-method': 'EUR International Wire', + }} + assert 'payment-method:' not in output.getvalue() def test_outgoing_report_multi_invoice(accrual_postings, caplog): - output = run_outgoing('rt:310', accrual_postings) - assert not caplog.records + rt_client = RTClient() + output = run_outgoing('rt:310', accrual_postings, rt_client) + log, = caplog.records + assert log.levelname == 'WARNING' + assert log.message.startswith('cannot set payment-method for rt:310: ') check_output(output, [ r'^PAYMENT FOR APPROVAL:$', r'^REQUESTOR: Mx\. 310 $', r'^TOTAL TO PAY: \$420.00$', ]) + assert rt_client.edits == {'310': { + 'CF_payment-amount': 'USD 420.00', + }} + assert 'payment-method:' not in output.getvalue() def test_outgoing_report_without_rt_id(accrual_postings, caplog): invoice = 'rt://ticket/515/attachments/5150'