diff --git a/tests/test_data_account.py b/tests/test_data_account.py index 5c78d1d87b56fc5f4a0b56361d955003866bc3b4..53cf2c84667ab9a29c64092dc6c41c57bb8e8292 100644 --- a/tests/test_data_account.py +++ b/tests/test_data_account.py @@ -160,6 +160,30 @@ def test_is_credit_card(acct_name, expected): def test_is_opening_equity(acct_name, expected): assert data.Account(acct_name).is_opening_equity() == expected +@pytest.mark.parametrize('acct_name', [ + 'Assets:Cash', + 'Assets:Prepaid:Expenses', + 'Assets:Receivable:Accounts', + 'Expenses:Other', + 'Equity:Funds:Restricted', + 'Equity:OpeningBalance', + 'Income:Other', + 'Liabilities:CreditCard', + 'Liabilities:Payable:Accounts', + 'Liabilities:UnearnedIncome:Donations', +]) +def test_keeps_balance(acct_name): + expected = acct_name.startswith(('Assets:', 'Liabilities:')) + assert data.Account(acct_name).keeps_balance() == expected + +def test_keeps_balance_uses_options(clean_account_meta): + config = bc_options.OPTIONS_DEFAULTS.copy() + config['name_liabilities'] = 'Debts' + data.Account.load_options_map(config) + assert not data.Account('Liabilities:CreditCard').keeps_balance() + assert data.Account('Debts:Payable').keeps_balance() + assert data.Account('Assets:Receivable').keeps_balance() + @pytest.mark.parametrize('acct_name', [ 'Assets:Cash', 'Assets:Receivable:Accounts',