1
1
import unittest
2
2
import os
3
- from pyres import ResQ , str_to_class
3
+ from pyres import ResQ , str_to_class , Stat
4
4
from pyres .job import Job
5
5
from pyres .worker import Worker
6
6
class Basic (object ):
@@ -22,7 +22,7 @@ def perform():
22
22
return 'Done Sleeping'
23
23
24
24
25
- class ErrorObjcet (object ):
25
+ class ErrorObject (object ):
26
26
queue = 'basic'
27
27
28
28
@staticmethod
@@ -224,11 +224,59 @@ def test_signals(self):
224
224
assert not worker .kill_child (frame , signal .SIGUSR1 )
225
225
226
226
def test_job_failure (self ):
227
- self .resq .enqueue (ErrorObjcet )
227
+ self .resq .enqueue (ErrorObject )
228
228
worker = Worker (['basic' ])
229
- #worker.process()
229
+ worker .process ()
230
+ name = "%s:%s:%s" % (os .uname ()[1 ],os .getpid (),'basic' )
231
+ assert not self .redis .get ('worker:%s' % worker )
232
+ assert self .redis .get ("stat:failed" ) == 1
233
+ assert self .redis .get ("stat:failed:%s" % name ) == 1
234
+
235
+ def test_get_job (self ):
236
+ worker = Worker (['basic' ])
237
+ self .resq .enqueue (Basic ,"test1" )
238
+ job = Job .reserve ('basic' , self .resq )
239
+ worker .working_on (job )
230
240
name = "%s:%s:%s" % (os .uname ()[1 ],os .getpid (),'basic' )
231
- #assert not self.redis.get('worker:%s' % worker)
232
- #assert self.redis.get("stat:failed")
233
- #assert self.redis.get("stat:failed:%s" % name)
234
- assert False
241
+ assert worker .job () == ResQ .decode (self .redis .get ('worker:%s' % name ))
242
+ worker .done_working ()
243
+ w2 = Worker (['basic' ])
244
+ print w2 .job ()
245
+ assert w2 .job () == {}
246
+
247
+
248
+ class StatTests (PyResTests ):
249
+ def test_incr (self ):
250
+ stat_obj = Stat ('test_stat' , self .resq )
251
+ stat_obj .incr ()
252
+ assert self .redis .get ('stat:test_stat' ) == 1
253
+ stat_obj .incr ()
254
+ assert self .redis .get ('stat:test_stat' ) == 2
255
+ stat_obj .incr (2 )
256
+ assert self .redis .get ('stat:test_stat' ) == 4
257
+
258
+ def test_decr (self ):
259
+ stat_obj = Stat ('test_stat' , self .resq )
260
+ stat_obj .incr ()
261
+ stat_obj .incr ()
262
+ assert self .redis .get ('stat:test_stat' ) == 2
263
+ stat_obj .decr ()
264
+ assert self .redis .get ('stat:test_stat' ) == 1
265
+ stat_obj .incr ()
266
+ stat_obj .decr (2 )
267
+ assert self .redis .get ('stat:test_stat' ) == 0
268
+
269
+ def test_get (self ):
270
+ stat_obj = Stat ('test_stat' , self .resq )
271
+ stat_obj .incr ()
272
+ stat_obj .incr ()
273
+ assert stat_obj .get () == 2
274
+
275
+ def test_clear (self ):
276
+ stat_obj = Stat ('test_stat' , self .resq )
277
+ stat_obj .incr ()
278
+ stat_obj .incr ()
279
+ assert self .redis .exists ('stat:test_stat' )
280
+ stat_obj .clear ()
281
+ assert not self .redis .exists ('stat:test_stat' )
282
+
0 commit comments