@@ -71,12 +71,17 @@ def test_worker_with_queue_name(self):
71
71
self .assertTrue ("test_queue" in output )
72
72
73
73
74
+ @freezegun .freeze_time ("2025-01-01T12:00:00Z" )
74
75
@override_settings (JOBS = {"testjob" : {"tasks" : ["a" ]}})
75
76
class JobModelMethodTestCase (TestCase ):
76
77
def test_get_queue_depths (self ):
77
78
Job .objects .create (name = "testjob" , queue_name = "default" )
78
79
Job .objects .create (name = "testjob" , queue_name = "testworker" )
79
- Job .objects .create (name = "testjob" , queue_name = "testworker" )
80
+ Job .objects .create (
81
+ name = "testjob" ,
82
+ queue_name = "testworker" ,
83
+ run_after = timezone .make_aware (datetime (2025 , 1 , 1 , 13 , 0 , 0 )),
84
+ )
80
85
Job .objects .create (
81
86
name = "testjob" , queue_name = "testworker" , state = Job .STATES .FAILED
82
87
)
@@ -87,6 +92,24 @@ def test_get_queue_depths(self):
87
92
queue_depths = Job .get_queue_depths ()
88
93
self .assertDictEqual (queue_depths , {"default" : 1 , "testworker" : 2 })
89
94
95
+ def test_get_queue_depths_exclude_future_jobs (self ):
96
+ Job .objects .create (name = "testjob" , queue_name = "default" )
97
+ Job .objects .create (name = "testjob" , queue_name = "testworker" )
98
+ Job .objects .create (
99
+ name = "testjob" ,
100
+ queue_name = "testworker" ,
101
+ run_after = timezone .make_aware (datetime (2025 , 1 , 1 , 13 , 0 , 0 )),
102
+ )
103
+ Job .objects .create (
104
+ name = "testjob" , queue_name = "testworker" , state = Job .STATES .FAILED
105
+ )
106
+ Job .objects .create (
107
+ name = "testjob" , queue_name = "testworker" , state = Job .STATES .COMPLETE
108
+ )
109
+
110
+ queue_depths = Job .get_queue_depths (exclude_future_jobs = True )
111
+ self .assertDictEqual (queue_depths , {"default" : 1 , "testworker" : 1 })
112
+
90
113
91
114
@override_settings (JOBS = {"testjob" : {"tasks" : ["a" ]}})
92
115
class QueueDepthTestCase (TestCase ):
0 commit comments