Skip to content

Commit aeb4b80

Browse files
committed
fix:export
1 parent 708e7e1 commit aeb4b80

File tree

4 files changed

+28
-27
lines changed

4 files changed

+28
-27
lines changed

scheduler/models/task.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import math
22
import uuid
3-
from datetime import timedelta
3+
from datetime import timedelta, datetime
44
from typing import Dict
55

66
import croniter
@@ -311,7 +311,7 @@ def unschedule(self) -> bool:
311311
self.save(schedule_job=False)
312312
return True
313313

314-
def _schedule_time(self):
314+
def _schedule_time(self) -> datetime:
315315
if self.task_type == TaskType.CRON:
316316
self.scheduled_time = tools.get_next_cron_time(self.cron_string)
317317
elif self.task_type == TaskType.REPEATABLE:

scheduler/rq_classes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from scheduler import settings
2525
from scheduler.broker_types import PipelineType, ConnectionType
2626

27-
MODEL_NAMES = ["ScheduledTask", "RepeatableTask", "CronTask"]
27+
MODEL_NAMES = ["ScheduledTask", "RepeatableTask", "CronTask", "Task"]
2828

2929
rq_job_decorator = job
3030
ExecutionStatus = JobStatus

scheduler/tests/test_mgmt_cmds.py

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from scheduler.models import ScheduledTask, RepeatableTask, Task
1111
from scheduler.queues import get_queue
1212
from scheduler.tests.jobs import failing_job, test_job
13-
from scheduler.tests.testtools import task_factory
13+
from scheduler.tests.testtools import task_factory, old_task_factory
1414
from . import test_settings # noqa
1515
from .test_views import BaseTestCase
1616
from ..models.task import TaskType
@@ -167,8 +167,8 @@ def tearDown(self) -> None:
167167

168168
def test_export__should_export_job(self):
169169
jobs = list()
170-
jobs.append(task_factory(ScheduledTask, enabled=True))
171-
jobs.append(task_factory(RepeatableTask, enabled=True))
170+
jobs.append(task_factory(TaskType.ONCE, enabled=True))
171+
jobs.append(task_factory(TaskType.REPEATABLE, enabled=True))
172172

173173
# act
174174
call_command("export", filename=self.tmpfile.name)
@@ -180,8 +180,8 @@ def test_export__should_export_job(self):
180180

181181
def test_export__should_export_enabled_jobs_only(self):
182182
jobs = list()
183-
jobs.append(task_factory(ScheduledTask, enabled=True))
184-
jobs.append(task_factory(RepeatableTask, enabled=False))
183+
jobs.append(task_factory(TaskType.ONCE, enabled=True))
184+
jobs.append(task_factory(TaskType.REPEATABLE, enabled=False))
185185

186186
# act
187187
call_command("export", filename=self.tmpfile.name, enabled=True)
@@ -192,8 +192,8 @@ def test_export__should_export_enabled_jobs_only(self):
192192

193193
def test_export__should_export_job_yaml_without_yaml_lib(self):
194194
jobs = list()
195-
jobs.append(task_factory(ScheduledTask, enabled=True))
196-
jobs.append(task_factory(RepeatableTask, enabled=True))
195+
jobs.append(task_factory(TaskType.ONCE, enabled=True))
196+
jobs.append(task_factory(TaskType.REPEATABLE, enabled=True))
197197

198198
# act
199199
with mock.patch.dict("sys.modules", {"yaml": None}):
@@ -203,8 +203,8 @@ def test_export__should_export_job_yaml_without_yaml_lib(self):
203203

204204
def test_export__should_export_job_yaml_green(self):
205205
jobs = list()
206-
jobs.append(task_factory(ScheduledTask, enabled=True))
207-
jobs.append(task_factory(RepeatableTask, enabled=True))
206+
jobs.append(task_factory(TaskType.ONCE, enabled=True))
207+
jobs.append(task_factory(TaskType.REPEATABLE, enabled=True))
208208

209209
# act
210210
call_command("export", filename=self.tmpfile.name, format="yaml")
@@ -224,8 +224,8 @@ def tearDown(self) -> None:
224224

225225
def test_import__should_schedule_job(self):
226226
jobs = list()
227-
jobs.append(task_factory(ScheduledTask, enabled=True, instance_only=True))
228-
jobs.append(task_factory(RepeatableTask, enabled=True, instance_only=True))
227+
jobs.append(task_factory(TaskType.ONCE, enabled=True, instance_only=True))
228+
jobs.append(task_factory(TaskType.REPEATABLE, enabled=True, instance_only=True))
229229
res = json.dumps([j.to_dict() for j in jobs])
230230
self.tmpfile.write(res)
231231
self.tmpfile.flush()
@@ -241,8 +241,8 @@ def test_import__should_schedule_job(self):
241241

242242
def test_import__should_schedule_job_yaml(self):
243243
tasks = list()
244-
tasks.append(task_factory(ScheduledTask, enabled=True, instance_only=True))
245-
tasks.append(task_factory(RepeatableTask, enabled=True, instance_only=True))
244+
tasks.append(task_factory(TaskType.ONCE, enabled=True, instance_only=True))
245+
tasks.append(task_factory(TaskType.REPEATABLE, enabled=True, instance_only=True))
246246
res = yaml.dump([j.to_dict() for j in tasks], default_flow_style=False)
247247
self.tmpfile.write(res)
248248
self.tmpfile.flush()
@@ -258,8 +258,8 @@ def test_import__should_schedule_job_yaml(self):
258258

259259
def test_import__should_schedule_job_yaml_without_yaml_lib(self):
260260
jobs = list()
261-
jobs.append(task_factory(ScheduledTask, enabled=True, instance_only=True))
262-
jobs.append(task_factory(RepeatableTask, enabled=True, instance_only=True))
261+
jobs.append(task_factory(TaskType.ONCE, enabled=True, instance_only=True))
262+
jobs.append(task_factory(TaskType.REPEATABLE, enabled=True, instance_only=True))
263263
res = yaml.dump([j.to_dict() for j in jobs], default_flow_style=False)
264264
self.tmpfile.write(res)
265265
self.tmpfile.flush()
@@ -271,10 +271,10 @@ def test_import__should_schedule_job_yaml_without_yaml_lib(self):
271271

272272
def test_import__should_schedule_job_reset(self):
273273
jobs = list()
274-
task_factory(ScheduledTask, enabled=True)
275-
task_factory(ScheduledTask, enabled=True)
276-
jobs.append(task_factory(ScheduledTask, enabled=True))
277-
jobs.append(task_factory(RepeatableTask, enabled=True, instance_only=True))
274+
task_factory(TaskType.ONCE, enabled=True)
275+
task_factory(TaskType.ONCE, enabled=True)
276+
jobs.append(task_factory(TaskType.ONCE, enabled=True))
277+
jobs.append(task_factory(TaskType.REPEATABLE, enabled=True, instance_only=True))
278278
res = json.dumps([j.to_dict() for j in jobs])
279279
self.tmpfile.write(res)
280280
self.tmpfile.flush()
@@ -298,8 +298,8 @@ def test_import__should_schedule_job_reset(self):
298298

299299
def test_import__should_schedule_job_update_existing(self):
300300
tasks = list()
301-
tasks.append(task_factory(ScheduledTask, enabled=True))
302-
tasks.append(task_factory(ScheduledTask, enabled=True))
301+
tasks.append(task_factory(TaskType.ONCE, enabled=True))
302+
tasks.append(task_factory(TaskType.ONCE, enabled=True))
303303
res = json.dumps([j.to_dict() for j in tasks])
304304
self.tmpfile.write(res)
305305
self.tmpfile.flush()
@@ -318,8 +318,8 @@ def test_import__should_schedule_job_update_existing(self):
318318

319319
def test_import__should_schedule_job_without_update_existing(self):
320320
tasks = list()
321-
tasks.append(task_factory(ScheduledTask, enabled=True))
322-
tasks.append(task_factory(ScheduledTask, enabled=True))
321+
tasks.append(task_factory(TaskType.ONCE, enabled=True))
322+
tasks.append(task_factory(TaskType.ONCE, enabled=True))
323323
res = json.dumps([j.to_dict() for j in tasks])
324324
self.tmpfile.write(res)
325325
self.tmpfile.flush()

scheduler/tests/test_repeatable_task.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88
from scheduler.models import RepeatableTask
99
from scheduler.tests.test_old_models import BaseTestCases
1010
from .testtools import task_factory, _get_job_from_scheduled_registry
11+
from ..tools import TaskType
1112

1213

1314
class TestRepeatableTask(BaseTestCases.TestSchedulableJob):
14-
TaskModelClass = RepeatableTask
15+
TaskModelClass = TaskType.REPEATABLE
1516

1617
def test_unschedulable_old_job(self):
1718
job = task_factory(self.TaskModelClass, scheduled_time=timezone.now() - timedelta(hours=1), repeat=0)

0 commit comments

Comments
 (0)