@@ -46,3 +46,60 @@ def test_03_done(self):
4646 wizard = self ._wizard ("queue.jobs.to.done" )
4747 wizard .set_done ()
4848 self .assertEqual (self .job .state , "done" )
49+
50+ def test_04_requeue_forbidden (self ):
51+ wizard = self ._wizard ("queue.requeue.job" )
52+
53+ # State WAIT_DEPENDENCIES is not requeued
54+ self .job .state = "wait_dependencies"
55+ wizard .requeue ()
56+ self .assertEqual (self .job .state , "wait_dependencies" )
57+
58+ # State PENDING, ENQUEUED or STARTED are ignored too
59+ for test_state in ("pending" , "enqueued" , "started" ):
60+ self .job .state = test_state
61+ wizard .requeue ()
62+ self .assertEqual (self .job .state , test_state )
63+
64+ # States CANCELLED, DONE or FAILED will change status
65+ self .job .state = "cancelled"
66+ wizard .requeue ()
67+ self .assertEqual (self .job .state , "pending" )
68+
69+ def test_05_cancel_forbidden (self ):
70+ wizard = self ._wizard ("queue.jobs.to.cancelled" )
71+
72+ # State WAIT_DEPENDENCIES is not cancelled
73+ self .job .state = "wait_dependencies"
74+ wizard .set_cancelled ()
75+ self .assertEqual (self .job .state , "wait_dependencies" )
76+
77+ # State DONE is not cancelled
78+ self .job .state = "done"
79+ wizard .set_cancelled ()
80+ self .assertEqual (self .job .state , "done" )
81+
82+ # State PENDING, ENQUEUED or FAILED will be cancelled
83+ for test_state in ("pending" , "enqueued" ):
84+ self .job .state = test_state
85+ wizard .set_cancelled ()
86+ self .assertEqual (self .job .state , "cancelled" )
87+
88+ def test_06_done_forbidden (self ):
89+ wizard = self ._wizard ("queue.jobs.to.done" )
90+
91+ # State STARTED is not set DONE manually
92+ self .job .state = "started"
93+ wizard .set_done ()
94+ self .assertEqual (self .job .state , "started" )
95+
96+ # State CANCELLED is not cancelled
97+ self .job .state = "cancelled"
98+ wizard .set_done ()
99+ self .assertEqual (self .job .state , "cancelled" )
100+
101+ # State WAIT_DEPENDENCIES, PENDING, ENQUEUED or FAILED will be set to DONE
102+ for test_state in ("wait_dependencies" , "pending" , "enqueued" ):
103+ self .job .state = test_state
104+ wizard .set_done ()
105+ self .assertEqual (self .job .state , "done" )
0 commit comments