@@ -175,22 +175,22 @@ def test_filter_search(accrual_postings, search_terms, expect_count, check_func)
else:
assert len(actual) == ACCRUALS_COUNT
for post in actual:
assert check_func(post)
@pytest.mark.parametrize('arg,expected', [
('balance', accrual.balance_report),
('outgoing', accrual.outgoing_report),
('bal', accrual.balance_report),
('out', accrual.outgoing_report),
('outgoings', accrual.outgoing_report),
('balance', accrual.BalanceReport),
('outgoing', accrual.OutgoingReport),
('bal', accrual.BalanceReport),
('out', accrual.OutgoingReport),
('outgoings', accrual.OutgoingReport),
])
def test_report_type_by_name(arg, expected):
assert accrual.ReportType.by_name(arg.lower()) is expected
assert accrual.ReportType.by_name(arg.title()) is expected
assert accrual.ReportType.by_name(arg.upper()) is expected
assert accrual.ReportType.by_name(arg.lower()).value is expected
assert accrual.ReportType.by_name(arg.title()).value is expected
assert accrual.ReportType.by_name(arg.upper()).value is expected
@pytest.mark.parametrize('arg', [
'unknown',
'blance',
'outgong',
@@ -257,26 +257,29 @@ def run_outgoing(invoice, postings, rt_client=None):
if rt_client is None:
rt_client = RTClient()
if not isinstance(postings, core.RelatedPostings):
postings = relate_accruals_by_meta(postings, invoice)
output = io.StringIO()
errors = io.StringIO()
rt_cache = rtutil.RT(rt_client)
accrual.outgoing_report({invoice: postings}, output, errors, rt_client, rt_cache)
report = accrual.OutgoingReport(rt_client, output, errors)
report.run({invoice: postings})
return output, errors
@pytest.mark.parametrize('invoice,expected', [
('rt:505/5050', "Zero balance outstanding since 2020-05-05"),
('rt:510/5100', "Zero balance outstanding since 2020-05-10"),
('rt:510/6100', "-280.00 USD outstanding since 2020-06-10"),
('rt://ticket/515/attachments/5150', "1,500.00 USD outstanding since 2020-05-15",),
def test_balance_report(accrual_postings, invoice, expected):
related = relate_accruals_by_meta(accrual_postings, invoice)
accrual.balance_report({invoice: related}, output)
report = accrual.BalanceReport(output, errors)
report.run({invoice: related})
assert not errors.getvalue()
check_output(output, [invoice, expected])
def test_outgoing_report(accrual_postings):
invoice = 'rt:510/6100'
output, errors = run_outgoing(invoice, accrual_postings)
rt_url = RTClient.DEFAULT_URL[:-9]