diff --git a/tests/test_meta_expense_type.py b/tests/test_meta_expense_type.py index c8289a8288a48bd55031c398935b89106b009fa1..ab57f4b622ec60eb5c37fa9c5cc790ae923b9040 100644 --- a/tests/test_meta_expense_type.py +++ b/tests/test_meta_expense_type.py @@ -38,6 +38,9 @@ INVALID_VALUES = { } TEST_KEY = 'expense-type' +PROJECT_KEY = 'project' +UNRESTRICTED_FUND = 'Conservancy' +RESTRICTED_FUND = 'Alpha' @pytest.fixture(scope='module') def hook(): @@ -102,21 +105,40 @@ def test_non_expense_accounts_skipped(hook, account): assert not errors testutil.check_post_meta(txn, None, meta) -@pytest.mark.parametrize('account,set_value', [ - ('Expenses:Services:Accounting', 'management'), - ('Expenses:Services:Administration', 'management'), - ('Expenses:Services:Advocacy', 'program'), - ('Expenses:Services:Development', 'program'), - ('Expenses:Services:Fundraising', 'fundraising'), +@pytest.mark.parametrize('account,exp_unrestricted,exp_restricted', [ + ('Expenses:Accounting', 'management', 'management'), + ('Expenses:BadDebt', 'management', 'program'), + ('Expenses:BankingFees', 'management', 'management'), + ('Expenses:ComputerEquipment', 'management', 'program'), + ('Expenses:Fines', 'management', 'program'), + ('Expenses:FilingFees', 'management', 'program'), + ('Expenses:Hosting', 'management', 'program'), + ('Expenses:Insurance', 'management', 'management'), + ('Expenses:Office', 'management', 'program'), + ('Expenses:Other', 'management', 'program'), + ('Expenses:Phones', 'management', 'program'), + ('Expenses:Postage', 'management', 'program'), + ('Expenses:ProfessionalMemberships', 'management', 'program'), + ('Expenses:Services:Accounting', 'management', 'management'), + ('Expenses:Services:Administration', 'management', 'management'), + ('Expenses:Services:Advocacy', 'program', 'program'), + ('Expenses:Services:Development', 'program', 'program'), + ('Expenses:Services:Fundraising', 'fundraising', 'fundraising'), + ('Expenses:Travel', 'management', 'management'), ]) -def test_default_values(hook, account, set_value): +def test_default_values(hook, account, exp_unrestricted, exp_restricted): txn = testutil.Transaction(postings=[ ('Liabilites:CreditCard', -25), - (account, 25), + (account, 20, {PROJECT_KEY: UNRESTRICTED_FUND}), + (account, 5, {PROJECT_KEY: RESTRICTED_FUND}), ]) errors = list(hook.run(txn)) assert not errors - testutil.check_post_meta(txn, None, {TEST_KEY: set_value}) + testutil.check_post_meta( + txn, None, + {TEST_KEY: exp_unrestricted, PROJECT_KEY: UNRESTRICTED_FUND}, + {TEST_KEY: exp_restricted, PROJECT_KEY: RESTRICTED_FUND}, + ) @pytest.mark.parametrize('date,set_value', [ (testutil.EXTREME_FUTURE_DATE, None),