tests: Add test for trying to make outgoing report without rt-id.
Changes to other test cases are to make them *not* trip up this error after adding it to the books.
This commit is contained in:
parent
d3e0a38073
commit
3a0b85c8f0
2 changed files with 17 additions and 10 deletions
|
@ -38,8 +38,7 @@
|
|||
Expenses:Services:Legal 200.00 USD
|
||||
Liabilities:Payable:Accounts -200.00 USD
|
||||
|
||||
2020-05-15 * "DonorB" "Donation pledge"
|
||||
rt-id: "rt://ticket/515"
|
||||
2020-05-15 * "MatchingProgram" "May matched donations"
|
||||
invoice: "rt://ticket/515/attachments/5150"
|
||||
approval: "rt://ticket/515/attachments/5140"
|
||||
Income:Donations -1500.00 USD
|
||||
|
|
|
@ -18,6 +18,7 @@ import collections
|
|||
import copy
|
||||
import io
|
||||
import itertools
|
||||
import logging
|
||||
import re
|
||||
|
||||
import pytest
|
||||
|
@ -161,8 +162,8 @@ def test_search_term_parse_regexp_escaping(search, unmatched):
|
|||
([], ACCRUALS_COUNT, lambda post: post.account.is_under(
|
||||
'Assets:Receivable:', 'Liabilities:Payable:',
|
||||
)),
|
||||
([('invoice', '^rt:505/5050$')], 2, lambda post: post.meta['entity'] == 'DonorA'),
|
||||
([('rt-id', r'^rt:\D+515$')], 1, lambda post: post.meta['entity'] == 'DonorB'),
|
||||
([('rt-id', '^rt:505$')], 2, lambda post: post.meta['entity'] == 'DonorA'),
|
||||
([('invoice', r'^rt:\D+515/')], 1, lambda post: post.meta['entity'] == 'MatchingProgram'),
|
||||
([('entity', '^Lawyer$')], 3, lambda post: post.meta['rt-id'] == 'rt:510'),
|
||||
([('entity', '^Lawyer$'), ('contract', '^rt:510/')], 2,
|
||||
lambda post: post.meta['invoice'].startswith('rt:510/')),
|
||||
|
@ -324,6 +325,16 @@ def test_outgoing_report_fx_amounts(accrual_postings, caplog):
|
|||
r'^TOTAL TO PAY: 1,000\.00 EUR \(\$1,100.00\)$',
|
||||
])
|
||||
|
||||
def test_outgoing_report_without_rt_id(accrual_postings, caplog):
|
||||
invoice = 'rt://ticket/515/attachments/5150'
|
||||
output = run_outgoing(invoice, accrual_postings)
|
||||
assert caplog.records
|
||||
log = caplog.records[0]
|
||||
assert log.message.startswith(
|
||||
f"can't generate outgoings report for {invoice} because no RT ticket available:",
|
||||
)
|
||||
assert not output.getvalue()
|
||||
|
||||
def run_main(arglist, config=None):
|
||||
if config is None:
|
||||
config = testutil.TestConfig(
|
||||
|
@ -343,9 +354,8 @@ def check_main_fails(arglist, config, error_flags, error_patterns):
|
|||
assert not output.getvalue()
|
||||
|
||||
@pytest.mark.parametrize('arglist', [
|
||||
['--report-type=balance'],
|
||||
['--report-type=outgoing'],
|
||||
['entity=EarlyBird'],
|
||||
['--report-type=balance', 'entity=EarlyBird'],
|
||||
['--report-type=outgoing', 'entity=EarlyBird'],
|
||||
])
|
||||
def test_output_excludes_payments(arglist):
|
||||
retcode, output, errors = run_main(arglist)
|
||||
|
@ -369,7 +379,6 @@ def test_output_payments_when_only_match(arglist, expect_invoice):
|
|||
])
|
||||
|
||||
@pytest.mark.parametrize('arglist', [
|
||||
['--report-type=outgoing'],
|
||||
['510'],
|
||||
['510/6100'],
|
||||
['entity=Lawyer'],
|
||||
|
@ -390,9 +399,8 @@ def test_main_outgoing_report(arglist):
|
|||
|
||||
@pytest.mark.parametrize('arglist', [
|
||||
['-t', 'balance'],
|
||||
['515'],
|
||||
['515/5150'],
|
||||
['entity=DonorB'],
|
||||
['entity=MatchingProgram'],
|
||||
])
|
||||
def test_main_balance_report(arglist):
|
||||
retcode, output, errors = run_main(arglist)
|
||||
|
|
Loading…
Reference in a new issue