def test_suspend(self): """A job that is in the WAITING state can be suspended.""" job = Job(_status=JobStatus.WAITING) job.suspend() self.assertEqual( job.status, JobStatus.SUSPENDED)
def test_suspend_manages_transactions(self): # Job.suspend() does not commit the transaction by default. job = Job() job.start() with TransactionRecorder() as recorder: job.suspend() self.assertEqual([], recorder.transaction_calls) # If explicitly specified, Job.suspend() commits the transaction. job = Job() job.start() with TransactionRecorder() as recorder: job.suspend(manage_transaction=True) self.assertEqual(['commit'], recorder.transaction_calls)
def test_suspend_when_running(self): """When a job is running, attempting to suspend is valid.""" job = Job(_status=JobStatus.RUNNING) job.suspend() self.assertEqual(JobStatus.SUSPENDED, job.status)