File diff 9223940213a9 → 8b2683d96290
tests/test_reports_accrual.py
Show inline comments
...
 
@@ -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)
 
    output = io.StringIO()
 
    accrual.balance_report({invoice: related}, output)
 
    errors = io.StringIO()
 
    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]