File diff b37575eabc84 → ab9c65d20dc5
tests/test_hooks.py
Show inline comments
...
 
@@ -5,7 +5,7 @@ import itertools
 
import pytest
 

	
 
from import2ledger import hooks
 
from import2ledger.hooks import add_entity, default_date
 
from import2ledger.hooks import add_entity, default_date, filter_by_date
 

	
 
def test_load_all():
 
    all_hooks = list(hooks.load_all())
...
 
@@ -30,6 +30,36 @@ def test_add_entity(payee, expected):
 
    assert data['entity'] == expected
 

	
 

	
 
class DateRangeConfig:
 
    def __init__(self, start_date=None, end_date=None):
 
        self.start_date = start_date
 
        self.end_date = end_date
 

	
 
    def date_in_want_range(self, date):
 
        return (
 
            ((self.start_date is None) or (date >= self.start_date))
 
            and ((self.end_date is None) or (date <= self.end_date))
 
        )
 

	
 

	
 
@pytest.mark.parametrize('entry_date,start_date,end_date,allowed', [
 
    (datetime.date(2016, 5, 10), datetime.date(2016, 1, 1), datetime.date(2016, 12, 31), True),
 
    (datetime.date(2016, 1, 1), datetime.date(2016, 1, 1), datetime.date(2016, 12, 31), True),
 
    (datetime.date(2016, 12, 31), datetime.date(2016, 1, 1), datetime.date(2016, 12, 31), True),
 
    (datetime.date(2016, 1, 1), datetime.date(2016, 1, 1), None, True),
 
    (datetime.date(2016, 12, 31), None, datetime.date(2016, 12, 31), True),
 
    (datetime.date(1999, 1, 2), None, None, True),
 
    (datetime.date(2016, 1, 25), datetime.date(2016, 2, 1), datetime.date(2016, 12, 31), False),
 
    (datetime.date(2016, 12, 26), datetime.date(2016, 1, 1), datetime.date(2016, 11, 30), False),
 
    (datetime.date(2016, 1, 31), datetime.date(2016, 2, 1), None, False),
 
    (datetime.date(2016, 12, 1), None, datetime.date(2016, 11, 30), False),
 
])
 
def test_filter_by_date(entry_date, start_date, end_date, allowed):
 
    entry_data = {'date': entry_date}
 
    hook = filter_by_date.FilterByDateHook(DateRangeConfig(start_date, end_date))
 
    hook.run(entry_data)
 
    assert bool(entry_data) == allowed
 

	
 
class DefaultDateConfig:
 
    ONE_DAY = datetime.timedelta(days=1)