File diff 9fef177d2dc6 → 5a1f7122bd3d
tests/test_rtutil.py
Show inline comments
...
 
@@ -118,6 +118,30 @@ def test_url_default_filename(new_client, mimetype, extension):
 
    expected = '{}Ticket/Attachment/9/9/RT1%20attachment%209.{}'.format(DEFAULT_RT_URL, extension)
 
    assert rt.url(1, 9) == expected
 

	
 
@pytest.mark.parametrize('rt_fmt,nonrt_fmt,missing_fmt', [
 
    ('{}', '{}', '{}',),
 
    ('<{}>', '[{}]', '({})'),
 
])
 
def test_iter_urls(rt, rt_fmt, nonrt_fmt, missing_fmt):
 
    expected_map = {
 
        'rt:{}{}'.format(tid, '' if aid is None else f'/{aid}'): url
 
        for tid, aid, url in EXPECTED_URLS
 
    }
 
    expected_map['https://example.com'] = None
 
    expected_map['invoice.pdf'] = None
 
    keys = list(expected_map)
 
    urls = rt.iter_urls(keys, rt_fmt, nonrt_fmt, missing_fmt)
 
    for key, actual in itertools.zip_longest(keys, urls):
 
        expected = expected_map[key]
 
        if expected is None:
 
            if key.startswith('rt:'):
 
                expected = missing_fmt.format(key)
 
            else:
 
                expected = nonrt_fmt.format(key)
 
        else:
 
            expected = rt_fmt.format(DEFAULT_RT_URL + expected)
 
        assert actual == expected
 

	
 
@pytest.mark.parametrize('ticket_id,attachment_id,expected', EXPECTED_URLS)
 
def test_exists(rt, ticket_id, attachment_id, expected):
 
    expected = False if expected is None else True
...
 
@@ -239,3 +263,21 @@ def test_txn_with_urls(rt):
 
        assert txn.meta[key] == expected
 
    assert txn.postings[0].meta['receipt'] == 'rt:2/13 donation.txt'
 
    assert txn.postings[1].meta['receipt'] == 'cash.png rt:2/14'
 

	
 
def test_txn_with_urls_with_fmts(rt):
 
    txn_meta = {
 
        'rt-id': 'rt:1',
 
        'contract': 'RepoLink.pdf',
 
        'statement': 'rt:1/99 rt:1/4 stmt.txt',
 
    }
 
    txn = testutil.Transaction(**txn_meta)
 
    actual = rt.txn_with_urls(txn, '<{}>', '[{}]', '({})')
 
    rt_id_path = EXPECTED_URLS_MAP[(1, None)]
 
    assert actual.meta['rt-id'] == f'<{DEFAULT_RT_URL}{rt_id_path}>'
 
    assert actual.meta['contract'] == '[RepoLink.pdf]'
 
    statement_path = EXPECTED_URLS_MAP[(1, 4)]
 
    assert actual.meta['statement'] == ' '.join([
 
        '(rt:1/99)',
 
        f'<{DEFAULT_RT_URL}{statement_path}>',
 
        '[stmt.txt]',
 
    ])