I
i3dmaster
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
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