@@ -248,50 +248,31 @@ def test_meta_values_many_types():
@pytest.mark.parametrize('count', range(3))
def test_all_meta_links_zero(count):
postings = (
testutil.Posting('Income:Donations', -n, testkey=str(n))
for n in range(count)
)
related = core.RelatedPostings(
post._replace(meta=data.Metadata(post.meta))
for post in postings
related = core.RelatedPostings(testutil.Posting(
'Income:Donations', -n, testkey=str(n), _meta_type=data.Metadata,
) for n in range(count))
assert next(related.all_meta_links('approval'), None) is None
def test_all_meta_links_singletons():
testutil.Posting('Income:Donations', -10, statement=value)
for value in itertools.chain(
testutil.NON_LINK_METADATA_STRINGS,
testutil.LINK_METADATA_STRINGS,
testutil.NON_STRING_METADATA_VALUES,
))
'Income:Donations', -10, statement=value, _meta_type=data.Metadata,
) for value in itertools.chain(
assert set(related.all_meta_links('statement')) == testutil.LINK_METADATA_STRINGS
def test_all_meta_links_multiples():
testutil.Posting('Income:Donations', -10, approval=' '.join(value))
for value in itertools.permutations(testutil.LINK_METADATA_STRINGS, 2)
'Income:Donations', -10, approval=' '.join(value), _meta_type=data.Metadata,
) for value in itertools.permutations(testutil.LINK_METADATA_STRINGS, 2))
assert set(related.all_meta_links('approval')) == testutil.LINK_METADATA_STRINGS
def test_all_meta_links_preserves_order():
testutil.Posting('Income:Donations', -10, approval=c)
for c in '121323'
'Income:Donations', -10, approval=c, _meta_type=data.Metadata,
) for c in '121323')
assert list(related.all_meta_links('approval')) == list('123')
def test_group_by_meta_zero():