|
1 |
| -from tests import PyResTests, Basic, TestProcess, ErrorObject, RetryOnExceptionJob, TimeoutJob, CrashJob |
| 1 | +from tests import PyResTests, Basic, TestProcess, ErrorObject, RetryOnExceptionJob, TimeoutJob, CrashJob, PrematureExitJob |
2 | 2 | from pyres import ResQ
|
3 | 3 | from pyres.job import Job
|
4 | 4 | from pyres.scheduler import Scheduler
|
@@ -224,6 +224,30 @@ def test_detect_crashed_workers_as_failures(self):
|
224 | 224 | assert worker.job() == {}
|
225 | 225 | assert worker.get_failed() == 1
|
226 | 226 |
|
| 227 | + def test_detect_non_0_sys_exit_as_failure(self): |
| 228 | + worker = Worker(['basic']) |
| 229 | + self.resq.enqueue(PrematureExitJob, 9) |
| 230 | + |
| 231 | + assert worker.job() == {} |
| 232 | + assert worker.get_failed() == 0 |
| 233 | + |
| 234 | + worker.fork_worker(worker.reserve()) |
| 235 | + |
| 236 | + assert worker.job() == {} |
| 237 | + assert worker.get_failed() == 1 |
| 238 | + |
| 239 | + def test_detect_code_0_sys_exit_as_success(self): |
| 240 | + worker = Worker(['basic']) |
| 241 | + self.resq.enqueue(PrematureExitJob, 0) |
| 242 | + |
| 243 | + assert worker.job() == {} |
| 244 | + assert worker.get_failed() == 0 |
| 245 | + |
| 246 | + worker.fork_worker(worker.reserve()) |
| 247 | + |
| 248 | + assert worker.job() == {} |
| 249 | + assert worker.get_failed() == 0 |
| 250 | + |
227 | 251 | def test_retries_give_up_eventually(self):
|
228 | 252 | now = datetime.datetime.now()
|
229 | 253 | self.set_current_time(now)
|
|
0 commit comments