11import unittest
22import os
3- from pyres import ResQ , str_to_class
3+ from pyres import ResQ , str_to_class , Stat
44from pyres .job import Job
55from pyres .worker import Worker
66class Basic (object ):
@@ -22,7 +22,7 @@ def perform():
2222 return 'Done Sleeping'
2323
2424
25- class ErrorObjcet (object ):
25+ class ErrorObject (object ):
2626 queue = 'basic'
2727
2828 @staticmethod
@@ -224,11 +224,59 @@ def test_signals(self):
224224 assert not worker .kill_child (frame , signal .SIGUSR1 )
225225
226226 def test_job_failure (self ):
227- self .resq .enqueue (ErrorObjcet )
227+ self .resq .enqueue (ErrorObject )
228228 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 )
230240 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