Add option to rule to move date of occurence to working day
This commit is contained in:
parent
e4963beee9
commit
9685670672
2 changed files with 93 additions and 4 deletions
|
@ -170,7 +170,9 @@ class PlannerTestCase(object):
|
|||
def test_planner_create_job(self):
|
||||
""" create job, check rule + constraints
|
||||
"""
|
||||
Planner = Pool().get('cashbook.planner')
|
||||
pool = Pool()
|
||||
Planner = pool.get('cashbook.planner')
|
||||
Config = pool.get('cashbook.configuration')
|
||||
|
||||
job = self.prep_create_job()
|
||||
self.assertEqual(
|
||||
|
@ -243,6 +245,53 @@ class PlannerTestCase(object):
|
|||
[date(2022, 5, 11), date(2022, 6, 8), date(2022, 7, 13),
|
||||
date(2022, 8, 10), date(2022, 9, 14), date(2022, 10, 12)])
|
||||
|
||||
# set up holidays
|
||||
cfg1 = Config(
|
||||
holidays='01-01;05-01;easter:+1;easter:-2;ascension;whitsun:+1')
|
||||
cfg1.save()
|
||||
# 1st of may, should be moved to 2nd of may
|
||||
self.assertEqual(
|
||||
job._compute_dates_by_rrule(
|
||||
query_date=date(2022, 4, 25), count=3,
|
||||
params={
|
||||
'end_date': None, 'start_date': date(2022, 5, 1),
|
||||
'move_event': 'after', 'weekday': None,
|
||||
'setpos': None, 'interval': 1, 'frequ': 'year',
|
||||
'monthday': None}),
|
||||
[date(2022, 5, 2), date(2023, 5, 2), date(2024, 5, 2)])
|
||||
# easter of 2022, occurence-date moved to tuesday after easter'22
|
||||
self.assertEqual(
|
||||
job._compute_dates_by_rrule(
|
||||
query_date=date(2022, 4, 10), count=3,
|
||||
params={
|
||||
'end_date': None, 'start_date': date(2022, 4, 17),
|
||||
'move_event': 'after', 'weekday': None,
|
||||
'setpos': None,
|
||||
'interval': 1, 'frequ': 'month', 'monthday': None}),
|
||||
[date(2022, 4, 19), date(2022, 5, 17), date(2022, 6, 17)])
|
||||
# easter of 2022, monthly, occurence-date moved to
|
||||
# thursday before easter'22
|
||||
self.assertEqual(
|
||||
job._compute_dates_by_rrule(
|
||||
query_date=date(2022, 4, 10), count=3,
|
||||
params={
|
||||
'end_date': None, 'start_date': date(2022, 4, 17),
|
||||
'move_event': 'before', 'weekday': None,
|
||||
'setpos': None,
|
||||
'interval': 1, 'frequ': 'month', 'monthday': None}),
|
||||
[date(2022, 4, 14), date(2022, 5, 17), date(2022, 6, 17)])
|
||||
# easter of 2022, monthly, check next occurence after easter
|
||||
# recompute date at moved occurence-date+1
|
||||
self.assertEqual(
|
||||
job._compute_dates_by_rrule(
|
||||
query_date=date(2022, 4, 15), count=3,
|
||||
params={
|
||||
'end_date': None, 'start_date': date(2022, 4, 17),
|
||||
'move_event': 'before', 'weekday': None,
|
||||
'setpos': None,
|
||||
'interval': 1, 'frequ': 'month', 'monthday': None}),
|
||||
[date(2022, 5, 17), date(2022, 6, 17), date(2022, 7, 15)])
|
||||
|
||||
Planner.write(*[[job], {
|
||||
'frequ': 'year', 'start_date': date(2022, 5, 1),
|
||||
'setpos': None, 'monthday': None, 'interval': 1,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue