|
1 |
| -from tests import PyResTests, Basic, TestProcess, ErrorObject, RetryOnExceptionJob, TimeoutJob, CrashJob, PrematureExitJob |
| 1 | +from tests import PyResTests, Basic, TestProcess, ErrorObject, RetryOnExceptionJob, TimeoutJob, CrashJob, PrematureExitJob, PrematureHardExitJob |
2 | 2 | from pyres import ResQ
|
3 | 3 | from pyres.job import Job
|
4 | 4 | from pyres.scheduler import Scheduler
|
@@ -248,6 +248,30 @@ def test_detect_code_0_sys_exit_as_success(self):
|
248 | 248 | assert worker.job() == {}
|
249 | 249 | assert worker.get_failed() == 0
|
250 | 250 |
|
| 251 | + def test_detect_non_0_os_exit_as_failure(self): |
| 252 | + worker = Worker(['basic']) |
| 253 | + self.resq.enqueue(PrematureHardExitJob, 9) |
| 254 | + |
| 255 | + assert worker.job() == {} |
| 256 | + assert worker.get_failed() == 0 |
| 257 | + |
| 258 | + worker.fork_worker(worker.reserve()) |
| 259 | + |
| 260 | + assert worker.job() == {} |
| 261 | + assert worker.get_failed() == 1 |
| 262 | + |
| 263 | + def test_detect_code_0_os_exit_as_success(self): |
| 264 | + worker = Worker(['basic']) |
| 265 | + self.resq.enqueue(PrematureHardExitJob, 0) |
| 266 | + |
| 267 | + assert worker.job() == {} |
| 268 | + assert worker.get_failed() == 0 |
| 269 | + |
| 270 | + worker.fork_worker(worker.reserve()) |
| 271 | + |
| 272 | + assert worker.job() == {} |
| 273 | + assert worker.get_failed() == 0 |
| 274 | + |
251 | 275 | def test_retries_give_up_eventually(self):
|
252 | 276 | now = datetime.datetime.now()
|
253 | 277 | self.set_current_time(now)
|
|
0 commit comments