@@ -21,6 +21,7 @@ from . import testutil
from datetime import date as Date
from beancount.core.data import Open, Close, Booking
from beancount.parser import options as bc_options
from conservancy_beancount import data
@@ -267,3 +268,48 @@ def test_load_openings_and_closings(clean_account_meta):
check_account_meta('Income:Donations', entries[0])
check_account_meta('Income:Other', entries[1])
check_account_meta('Assets:Checking', entries[2], entries[-1])
@pytest.mark.parametrize('account_s', [
'Assets:Bank:Checking',
'Equity:Funds:Restricted',
'Expenses:Other',
'Income:Donations',
'Liabilities:CreditCard:Visa',
])
def test_is_account(account_s):
assert data.Account.is_account(account_s)
'Assets:Bank:12-345',
'Liabilities:CreditCard:Visa0123',
def test_is_account(clean_account_meta, account_s):
'Assets:checking',
'Assets::Cash',
'Equity',
'Liabilities:Credit Card',
'income:Donations',
'Expenses:Banking_Fees',
'Revenue:Grants',
def test_is_not_account(clean_account_meta, account_s):
assert not data.Account.is_account(account_s)
@pytest.mark.parametrize('account_s,expected', [
('Revenue:Donations', True),
('Costs:Other', True),
('Income:Donations', False),
('Expenses:Other', False),
def test_is_account_respects_configured_roots(clean_account_meta, account_s, expected):
config = bc_options.OPTIONS_DEFAULTS.copy()
config['name_expenses'] = 'Costs'
config['name_income'] = 'Revenue'
data.Account.load_options_map(config)
assert data.Account.is_account(account_s) == expected