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