@@ -106,3 +106,64 @@ def test_iter_with_balance_credit_card(credit_card_cycle):
def test_iter_with_balance_two_acccruals(two_accruals_three_payments):
check_iter_with_balance(two_accruals_three_payments)
def test_meta_values_empty():
related = core.RelatedPostings()
assert related.meta_values('key') == set()
def test_meta_values_no_match():
related.add(testutil.Posting('Income:Donations', -1, metakey='metavalue'))
assert related.meta_values('key') == {None}
def test_meta_values_no_match_default_given():
assert related.meta_values('key', '') == {''}
def test_meta_values_one_match():
related.add(testutil.Posting('Income:Donations', -1, key='metavalue'))
assert related.meta_values('key') == {'metavalue'}
def test_meta_values_some_match():
related.add(testutil.Posting('Income:Donations', -1, key='1'))
related.add(testutil.Posting('Income:Donations', -2, metakey='2'))
assert related.meta_values('key') == {'1', None}
def test_meta_values_some_match_default_given():
assert related.meta_values('key', '') == {'1', ''}
def test_meta_values_all_match():
related.add(testutil.Posting('Income:Donations', -2, key='2'))
assert related.meta_values('key') == {'1', '2'}
def test_meta_values_all_match_one_value():
related.add(testutil.Posting('Income:Donations', -2, key='1'))
assert related.meta_values('key') == {'1'}
def test_meta_values_all_match_default_given():
assert related.meta_values('key', '') == {'1', '2'}
def test_meta_values_many_types():
expected = {
datetime.date(2020, 4, 1),
Decimal(42),
testutil.Amount(5),
'rt:42',
}
for index, value in enumerate(expected):
related.add(testutil.Posting('Income:Donations', -index, key=value))
assert related.meta_values('key') == expected