13
13
14
14
15
15
class TestRepeatableTask (BaseTestCases .TestSchedulableTask ):
16
- task_type = TaskType .REPEATABLE
17
16
queue_name = settings .get_queue_names ()[0 ]
18
17
19
18
def test_create_task_error (self ):
@@ -35,6 +34,7 @@ def test_create_task_error(self):
35
34
self .assertEqual (task .interval_unit , "seconds" )
36
35
37
36
def test_create_task_without_scheduled_time (self ):
37
+ settings .SCHEDULER_CONFIG .SCHEDULER_INTERVAL = 10
38
38
task = Task .objects .create (
39
39
name = "konichiva_every_2s" ,
40
40
callable = "scheduler.tests.jobs.test_args_kwargs" ,
@@ -52,34 +52,34 @@ def test_create_task_without_scheduled_time(self):
52
52
self .assertEqual (task .interval_unit , "seconds" )
53
53
54
54
def test_unschedulable_old_job (self ):
55
- task = task_factory (self . task_type , scheduled_time = timezone .now () - timedelta (hours = 1 ), repeat = 0 )
55
+ task = task_factory (TaskType . REPEATABLE , scheduled_time = timezone .now () - timedelta (hours = 1 ), repeat = 0 )
56
56
self .assertFalse (task .is_scheduled ())
57
57
58
58
def test_schedulable_old_job_repeat_none (self ):
59
59
# If repeat is None, the job should be scheduled
60
- task = task_factory (self . task_type , scheduled_time = timezone .now () - timedelta (hours = 1 ), repeat = None )
60
+ task = task_factory (TaskType . REPEATABLE , scheduled_time = timezone .now () - timedelta (hours = 1 ), repeat = None )
61
61
self .assertTrue (task .is_scheduled ())
62
62
63
63
def test_clean (self ):
64
- task = task_factory (self . task_type )
64
+ task = task_factory (TaskType . REPEATABLE )
65
65
task .queue = self .queue_name
66
66
task .callable = "scheduler.tests.jobs.test_job"
67
67
task .interval = 1
68
68
task .success_ttl = - 1
69
69
self .assertIsNone (task .clean ())
70
70
71
71
def test_clean_seconds (self ):
72
- task = task_factory (self . task_type )
72
+ task = task_factory (TaskType . REPEATABLE )
73
73
task .queue = self .queue_name
74
74
task .callable = "scheduler.tests.jobs.test_job"
75
75
task .interval = 60
76
76
task .success_ttl = - 1
77
77
task .interval_unit = "seconds"
78
- self . assertIsNone ( task .clean () )
78
+ task .clean ()
79
79
80
80
@override_settings (SCHEDULER_CONFIG = SchedulerConfiguration (SCHEDULER_INTERVAL = 10 ))
81
81
def test_clean_too_frequent (self ):
82
- task = task_factory (self . task_type )
82
+ task = task_factory (TaskType . REPEATABLE )
83
83
task .queue = self .queue_name
84
84
task .callable = "scheduler.tests.jobs.test_job"
85
85
task .interval = 2 # Smaller than 10
@@ -89,7 +89,7 @@ def test_clean_too_frequent(self):
89
89
task .clean_interval_unit ()
90
90
91
91
def test_clean_short_result_ttl (self ):
92
- task = task_factory (self . task_type )
92
+ task = task_factory (TaskType . REPEATABLE )
93
93
task .queue = self .queue_name
94
94
task .callable = "scheduler.tests.jobs.test_job"
95
95
task .interval = 1
@@ -101,7 +101,7 @@ def test_clean_short_result_ttl(self):
101
101
task .clean_result_ttl ()
102
102
103
103
def test_clean_indefinite_result_ttl (self ):
104
- task = task_factory (self . task_type )
104
+ task = task_factory (TaskType . REPEATABLE )
105
105
task .queue = self .queue_name
106
106
task .callable = "scheduler.tests.jobs.test_job"
107
107
task .interval = 1
@@ -110,72 +110,72 @@ def test_clean_indefinite_result_ttl(self):
110
110
task .clean_result_ttl ()
111
111
112
112
def test_clean_undefined_result_ttl (self ):
113
- task = task_factory (self . task_type )
113
+ task = task_factory (TaskType . REPEATABLE )
114
114
task .queue = self .queue_name
115
115
task .callable = "scheduler.tests.jobs.test_job"
116
116
task .interval = 1
117
117
task .interval_unit = "hours"
118
118
task .clean_result_ttl ()
119
119
120
120
def test_interval_seconds_weeks (self ):
121
- task = task_factory (self . task_type , interval = 2 , interval_unit = "weeks" )
121
+ task = task_factory (TaskType . REPEATABLE , interval = 2 , interval_unit = "weeks" )
122
122
self .assertEqual (1209600.0 , task .interval_seconds ())
123
123
124
124
def test_interval_seconds_days (self ):
125
- task = task_factory (self . task_type , interval = 2 , interval_unit = "days" )
125
+ task = task_factory (TaskType . REPEATABLE , interval = 2 , interval_unit = "days" )
126
126
self .assertEqual (172800.0 , task .interval_seconds ())
127
127
128
128
def test_interval_seconds_hours (self ):
129
- task = task_factory (self . task_type , interval = 2 , interval_unit = "hours" )
129
+ task = task_factory (TaskType . REPEATABLE , interval = 2 , interval_unit = "hours" )
130
130
self .assertEqual (7200.0 , task .interval_seconds ())
131
131
132
132
def test_interval_seconds_minutes (self ):
133
- task = task_factory (self . task_type , interval = 15 , interval_unit = "minutes" )
133
+ task = task_factory (TaskType . REPEATABLE , interval = 15 , interval_unit = "minutes" )
134
134
self .assertEqual (900.0 , task .interval_seconds ())
135
135
136
136
def test_interval_seconds_seconds (self ):
137
- task = task_factory (self . task_type , interval = 15 , interval_unit = "seconds" )
137
+ task = task_factory (TaskType . REPEATABLE , interval = 15 , interval_unit = "seconds" )
138
138
self .assertEqual (15.0 , task .interval_seconds ())
139
139
140
140
def test_result_interval (self ):
141
- task = task_factory (self . task_type )
141
+ task = task_factory (TaskType . REPEATABLE )
142
142
entry = _get_task_scheduled_job_from_registry (task )
143
143
self .assertEqual (entry .meta ["interval" ], 3600 )
144
144
145
145
def test_repeat (self ):
146
- task = task_factory (self . task_type , repeat = 10 )
146
+ task = task_factory (TaskType . REPEATABLE , repeat = 10 )
147
147
entry = _get_task_scheduled_job_from_registry (task )
148
148
self .assertEqual (entry .meta ["repeat" ], 10 )
149
149
150
150
def test_repeat_old_job_exhausted (self ):
151
151
base_time = timezone .now ()
152
- task = task_factory (self . task_type , scheduled_time = base_time - timedelta (hours = 10 ), repeat = 10 )
152
+ task = task_factory (TaskType . REPEATABLE , scheduled_time = base_time - timedelta (hours = 10 ), repeat = 10 )
153
153
self .assertEqual (task .is_scheduled (), False )
154
154
155
155
def test_repeat_old_job_last_iter (self ):
156
156
base_time = timezone .now ()
157
- task = task_factory (self . task_type , scheduled_time = base_time - timedelta (hours = 9 , minutes = 30 ), repeat = 10 )
157
+ task = task_factory (TaskType . REPEATABLE , scheduled_time = base_time - timedelta (hours = 9 , minutes = 30 ), repeat = 10 )
158
158
self .assertEqual (task .repeat , 0 )
159
159
self .assertEqual (task .is_scheduled (), True )
160
160
161
161
def test_repeat_old_job_remaining (self ):
162
162
base_time = timezone .now ()
163
- task = task_factory (self . task_type , scheduled_time = base_time - timedelta (minutes = 30 ), repeat = 5 )
163
+ task = task_factory (TaskType . REPEATABLE , scheduled_time = base_time - timedelta (minutes = 30 ), repeat = 5 )
164
164
self .assertEqual (task .repeat , 4 )
165
165
self .assertEqual (task .scheduled_time , base_time + timedelta (minutes = 30 ))
166
166
self .assertEqual (task .is_scheduled (), True )
167
167
168
168
def test_repeat_none_interval_2_min (self ):
169
169
base_time = timezone .now ()
170
- task = task_factory (self . task_type , scheduled_time = base_time - timedelta (minutes = 29 ), repeat = None )
170
+ task = task_factory (TaskType . REPEATABLE , scheduled_time = base_time - timedelta (minutes = 29 ), repeat = None )
171
171
task .interval = 120
172
172
task .interval_unit = "seconds"
173
173
task .save ()
174
174
self .assertTrue (task .scheduled_time > base_time )
175
175
self .assertTrue (task .is_scheduled ())
176
176
177
177
def test_check_rescheduled_after_execution (self ):
178
- task = task_factory (self . task_type , scheduled_time = timezone .now () + timedelta (seconds = 1 ), repeat = 10 )
178
+ task = task_factory (TaskType . REPEATABLE , scheduled_time = timezone .now () + timedelta (seconds = 1 ), repeat = 10 )
179
179
queue = task .rqueue
180
180
first_run_id = task .job_name
181
181
entry = JobModel .get (first_run_id , connection = queue .connection )
@@ -190,7 +190,7 @@ def test_check_rescheduled_after_execution(self):
190
190
191
191
def test_check_rescheduled_after_execution_failed_job (self ):
192
192
task = task_factory (
193
- self . task_type ,
193
+ TaskType . REPEATABLE ,
194
194
callable_name = "scheduler.tests.jobs.failing_job" ,
195
195
scheduled_time = timezone .now () + timedelta (seconds = 1 ),
196
196
repeat = 10 ,
@@ -209,7 +209,7 @@ def test_check_rescheduled_after_execution_failed_job(self):
209
209
210
210
def test_check_not_rescheduled_after_last_repeat (self ):
211
211
task = task_factory (
212
- self . task_type ,
212
+ TaskType . REPEATABLE ,
213
213
scheduled_time = timezone .now () + timedelta (seconds = 1 ),
214
214
repeat = 1 ,
215
215
)
0 commit comments