@@ -57,3 +57,35 @@ def test_get_links_bad_type(value):
meta = data.Metadata({'key': value})
with pytest.raises(TypeError):
meta.get_links('key')
def test_first_link_from_txn(simple_txn):
meta = data.PostingMeta(simple_txn, 0)
assert meta.first_link('note') == 'txn'
def test_first_link_from_post_override(simple_txn):
meta = data.PostingMeta(simple_txn, 1)
assert meta.first_link('note') == 'donation'
def test_first_link_is_only_link(simple_txn):
assert meta.first_link('extra') == 'Extra'
def test_first_link_nonexistent_metadata(simple_txn):
assert meta.first_link('Nonexistent') is None
def test_first_link_nonexistent_default(simple_txn):
assert meta.first_link('Nonexistent', 'missing') == 'missing'
@pytest.mark.parametrize('meta_value', testutil.NON_STRING_METADATA_VALUES)
def test_first_link_bad_type_metadata(simple_txn, meta_value):
simple_txn.meta['badmeta'] = meta_value
assert meta.first_link('badmeta') is None
def test_first_link_bad_type_default(simple_txn, meta_value):
assert meta.first_link('badmeta', '_') == '_'