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…
	
	Add table
		
		Reference in a new issue