diff --git a/tests/test_reports_related_postings.py b/tests/test_reports_related_postings.py index 6c0fe20762404f15e89d34a089a7573c1d37546c..8700f9412f7884d3465890454332dd49c5e6d3f2 100644 --- a/tests/test_reports_related_postings.py +++ b/tests/test_reports_related_postings.py @@ -275,6 +275,20 @@ def test_all_meta_links_preserves_order(): ) for c in '121323') assert list(related.all_meta_links('approval')) == list('123') +def test_first_meta_links(): + related = core.RelatedPostings(testutil.Posting( + 'Assets:Cash', 10, contract=value, _meta_type=data.Metadata, + ) for value in ['1 2', '', '1 3', testutil.PAST_DATE, '2 3', None]) + del related[-1].meta['contract'] + assert list(related.first_meta_links('contract')) == list('12') + +def test_first_meta_links_fallback(): + related = core.RelatedPostings(testutil.Posting( + 'Assets:Cash', 10, contract=value, _meta_type=data.Metadata, + ) for value in ['1 2', testutil.PAST_DATE, '1 3', None, '2 3']) + del related[-2].meta['contract'] + assert list(related.first_meta_links('contract', None)) == ['1', None, '2'] + def test_group_by_meta_zero(): assert not list(core.RelatedPostings.group_by_meta([], 'metacurrency'))