unittest for threading function always failed...

i3dmaster i3dmaster at gmail.com
Fri May 18 19:57:56 EDT 2007


On May 18, 4:13 pm, i3dmaster <i3dmas... at gmail.com> wrote:
> I am having a little difficulty to figure out why this unittest for a
> Thread subclass always fails...
>
> # unittest code:
>
> class SPThreadUnitTest(unittest.TestCase):
>
>   def testgetresult(self):
>     from random import randint
>     self.i = randint(1,10)
>     def p(n): return n
>     self.t = spthread.SPThread(target=p, args=(self.i))
>     self.t.start()
>     #self.t._res = self.t._target(self.t._args)
>     self.assertEquals(self.i,self.t.getresult())
>
> #spthread.SPThread code:
>
> import threading
> class SPThread(threading.Thread):
>
>   def __init__(self,target=None,args=None):
>     threading.Thread.__init__(self)
>     self._target = target
>     self._args = args
>     self._res = None
>
>   def getresult(self):
>     return self._res
>
>   def run(self):
>     self._res = self._target(self._args)
>
> A simple little test. But no matter what, the self._res didn't get any
> value but None, so the assertion of self.i and self.t.getresult()
> always fails. If I use the commented out code, it works. So the
> start() function has some tricky stuff? Can someone point me out where
> the problem is?
>
> Thanks,
> Jim

oh wft... I got it now. its the join() call...




More information about the Python-list mailing list