add form for nextrun-records, update of nextrun-records, tests

This commit is contained in:
Frederik Jaeckel 2024-02-29 23:20:19 +01:00
parent 9f3e33d225
commit 0fc0c4c8b9
8 changed files with 472 additions and 194 deletions

View file

@ -24,7 +24,7 @@ class PlannerTestCase(object):
job = None
with Transaction().set_context({
'company': company.id,
'start_date': date(2022, 5, 1)}):
'nextrun_querydate': date(2022, 5, 1)}):
book, = Book.create([{
'name': 'Book 1',
'btype': types.id,
@ -63,7 +63,7 @@ class PlannerTestCase(object):
job = self.prep_create_job()
self.assertEqual(
job._compute_dates_by_rrule(
start_date=date(2022, 5, 1), count=5), [
query_date=date(2022, 5, 1), count=5), [
date(2022, 5, 1), date(2022, 6, 1),
date(2022, 7, 1), date(2022, 8, 1),
date(2022, 9, 1)])
@ -78,7 +78,7 @@ class PlannerTestCase(object):
Planner.write(*[[job], {
'end_date': date(2022, 9, 15), 'monthday': 3}])
self.assertEqual(
job._compute_dates_by_rrule(start_date=date(2022, 5, 1)), [
job._compute_dates_by_rrule(query_date=date(2022, 5, 1)), [
date(2022, 5, 3), date(2022, 6, 3),
date(2022, 7, 3), date(2022, 8, 3),
date(2022, 9, 3)])
@ -86,7 +86,7 @@ class PlannerTestCase(object):
Planner.write(*[[job], {
'end_date': date(2022, 9, 15), 'monthday': 3, 'interval': 2}])
self.assertEqual(
job._compute_dates_by_rrule(start_date=date(2022, 5, 1)), [
job._compute_dates_by_rrule(query_date=date(2022, 5, 1)), [
date(2022, 5, 3), date(2022, 7, 3),
date(2022, 9, 3)])
@ -95,7 +95,7 @@ class PlannerTestCase(object):
'end_date': None, 'monthday': 1, 'interval': 1}])
self.assertEqual(
job._compute_dates_by_rrule(
start_date=date(2022, 5, 1),
query_date=date(2022, 5, 1),
params={
'end_date': date(2022, 9, 15), 'monthday': 3,
'interval': 2}),
@ -104,7 +104,7 @@ class PlannerTestCase(object):
# 1st wednesday of each 2nd month
self.assertEqual(
job._compute_dates_by_rrule(
start_date=date(2022, 5, 1),
query_date=date(2022, 5, 1),
params={
'end_date': date(2022, 9, 15), 'weekday': '2',
'interval': 2, 'setpos': 1, 'monthday': None}),
@ -113,7 +113,7 @@ class PlannerTestCase(object):
# 2nd wednesday of each 2nd month
self.assertEqual(
job._compute_dates_by_rrule(
start_date=date(2022, 5, 1),
query_date=date(2022, 5, 1),
params={
'end_date': date(2022, 9, 15), 'weekday': '2',
'interval': 2, 'setpos': 2, 'monthday': None}),
@ -122,7 +122,7 @@ class PlannerTestCase(object):
# 2nd wednesday of each month, 6x occurences
self.assertEqual(
job._compute_dates_by_rrule(
start_date=date(2022, 5, 1), count=6,
query_date=date(2022, 5, 1), count=6,
params={
'weekday': '2', 'end_date': None,
'interval': 1, 'setpos': 2, 'monthday': None}),
@ -216,10 +216,38 @@ class PlannerTestCase(object):
job = self.prep_create_job()
self.assertEqual(
job._compute_dates_by_rrule(
count=1, start_date=date(2022, 5, 1)), [
count=1, query_date=date(2022, 5, 1)), [
date(2022, 5, 1)])
job.update_next_occurence([job])
self.assertEqual(len(job.nextrun), 1)
with Transaction().set_context({
'nextrun_querydate': date(2022, 5, 25)}):
Planner.update_next_occurence([job])
self.assertEqual(len(job.nextrun), 1)
self.assertEqual(job.nextrun[0].date, date(2022, 6, 1))
with Transaction().set_context({
'nextrun_querydate': date(2022, 5, 30)}):
Planner.update_next_occurence([job])
self.assertEqual(len(job.nextrun), 1)
self.assertEqual(job.nextrun[0].date, date(2022, 6, 1))
with Transaction().set_context({
'nextrun_querydate': date(2022, 6, 1)}):
Planner.update_next_occurence([job])
self.assertEqual(len(job.nextrun), 1)
self.assertEqual(job.nextrun[0].date, date(2022, 6, 1))
with Transaction().set_context({
'nextrun_querydate': date(2022, 6, 2)}):
Planner.update_next_occurence([job])
self.assertEqual(len(job.nextrun), 1)
self.assertEqual(job.nextrun[0].date, date(2022, 7, 1))
with Transaction().set_context({
'nextrun_querydate': date(2022, 6, 2)}):
# set end-date to check delete of futore runs
Planner.write(*[[job], {'end_date': date(2022, 6, 20)}])
# write to planner-record updates nextrun-records too
self.assertEqual(len(job.nextrun), 0)
# end PlannerTestCase