@@ -138,6 +138,45 @@ def test_get_next_ready_job(self):
138138
139139 self .assertEqual (Job .objects .get_ready_or_none ('default' ), expected )
140140
141+ def test_gets_jobs_in_priority_order (self ):
142+ job_1 = Job .objects .create (name = 'testjob' )
143+ job_2 = Job .objects .create (name = 'testjob' , state = Job .STATES .PROCESSING )
144+ job_3 = Job .objects .create (name = 'testjob' , priority = 3 )
145+ job_4 = Job .objects .create (name = 'testjob' , priority = 2 )
146+ self .assertEqual ({
147+ job for job in Job .objects .to_process ('default' )
148+ }, {
149+ job_3 , job_4 , job_1
150+ })
151+ self .assertEqual (Job .objects .get_ready_or_none ('default' ), job_3 )
152+ self .assertFalse (Job .objects .to_process ('default' ).filter (id = job_2 .id ).exists ())
153+
154+ def test_gets_jobs_in_negative_priority_order (self ):
155+ job_1 = Job .objects .create (name = 'testjob' )
156+ job_2 = Job .objects .create (name = 'testjob' , state = Job .STATES .PROCESSING )
157+ job_3 = Job .objects .create (name = 'testjob' , priority = - 2 )
158+ job_4 = Job .objects .create (name = 'testjob' , priority = 1 )
159+ self .assertEqual ({
160+ job for job in Job .objects .to_process ('default' )
161+ }, {
162+ job_4 , job_3 , job_1
163+ })
164+ self .assertEqual (Job .objects .get_ready_or_none ('default' ), job_4 )
165+ self .assertFalse (Job .objects .to_process ('default' ).filter (id = job_2 .id ).exists ())
166+
167+ def test_gets_jobs_in_priority_and_date_order (self ):
168+ job_1 = Job .objects .create (name = 'testjob' , priority = 3 )
169+ job_2 = Job .objects .create (name = 'testjob' , state = Job .STATES .PROCESSING , priority = 3 )
170+ job_3 = Job .objects .create (name = 'testjob' , priority = 3 )
171+ job_4 = Job .objects .create (name = 'testjob' , priority = 3 )
172+ self .assertEqual ({
173+ job for job in Job .objects .to_process ('default' )
174+ }, {
175+ job_1 , job_3 , job_4
176+ })
177+ self .assertEqual (Job .objects .get_ready_or_none ('default' ), job_1 )
178+ self .assertFalse (Job .objects .to_process ('default' ).filter (id = job_2 .id ).exists ())
179+
141180 def test_get_next_ready_job_created (self ):
142181 """
143182 Created jobs should be picked too.
0 commit comments