forked from binarymatt/pyres
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_failure.py
More file actions
57 lines (51 loc) · 2.12 KB
/
test_failure.py
File metadata and controls
57 lines (51 loc) · 2.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from tests import PyResTests, Basic
from pyres import failure
from pyres.job import Job
class FailureTests(PyResTests):
def setUp(self):
PyResTests.setUp(self)
self.queue_name = 'basic'
self.job_class = Basic
def test_count(self):
self.resq.enqueue(self.job_class,"test1")
job = Job.reserve(self.queue_name,self.resq)
job.fail("problem")
assert failure.count(self.resq) == 1
assert self.redis.llen('resque:failed') == 1
def test_create(self):
self.resq.enqueue(self.job_class,"test1")
job = Job.reserve(self.queue_name,self.resq)
e = Exception('test')
fail = failure.create(e, self.queue_name, job._payload)
assert isinstance(fail._payload, dict)
fail.save(self.resq)
assert failure.count(self.resq) == 1
assert self.redis.llen('resque:failed') == 1
def test_all(self):
self.resq.enqueue(self.job_class,"test1")
job = Job.reserve(self.queue_name,self.resq)
e = Exception('problem')
job.fail(e)
assert len(failure.all(self.resq, 0, 20)) == 1
def test_clear(self):
self.resq.enqueue(self.job_class,"test1")
job = Job.reserve(self.queue_name,self.resq)
e = Exception('problem')
job.fail(e)
assert self.redis.llen('resque:failed') == 1
failure.clear(self.resq)
assert self.redis.llen('resque:failed') == 0
def test_requeue(self):
self.resq.enqueue(self.job_class,"test1")
job = Job.reserve(self.queue_name,self.resq)
e = Exception('problem')
fail_object = job.fail(e)
assert self.resq.size(self.queue_name) == 0
failure.requeue(self.resq, fail_object)
assert self.resq.size(self.queue_name) == 1
job = Job.reserve(self.queue_name,self.resq)
assert job._queue == self.queue_name
mod_with_class = '{module}.{klass}'.format(
module=self.job_class.__module__,
klass=self.job_class.__name__)
self.assertEqual(job._payload, {'class':mod_with_class,'args':['test1'],'enqueue_timestamp': job.enqueue_timestamp})