Files @ 73cd942a4606
Branch filter:

Location: NPO-Accounting/import2ledger/tests/test_hooks.py

Brett Smith
hooks: Ledger output hook uses its own config section.
from import2ledger import hooks
from import2ledger.hooks import add_entity, default_date, filter_by_date, ledger_entry

from . import Config
from . import date_hooks

def _run_order_test(config, expected_order):
    all_hooks = list(hooks.load_all(config))
    positions = {type(hook): index for index, hook in enumerate(all_hooks)}
    actual_order = list(sorted(expected_order, key=positions.__getitem__))
    assert actual_order == expected_order

def test_load_no_config_needed():
    return _run_order_test(Config(), [
        add_entity.AddEntityHook,
    ])

def test_load_all():
    config_dict = date_hooks.DateHookTestBase().new_config()
    config = Config(config_dict)
    config['DEFAULT']['test ledger entry'] = 'Income  {amount}'
    return _run_order_test(config, [
        default_date.DefaultDateHook,
        add_entity.AddEntityHook,
        filter_by_date.FilterByDateHook,
        ledger_entry.LedgerEntryHook,
    ])