[Twisted-Python] deferLater with trial issue
Conway, Nicholas J
Nick.Conway at wyss.harvard.edu
Wed May 23 17:30:45 EDT 2012
Hi,
I have a class that needs to kick off a method the repeatedly gets call every so many seconds, lets say 2 seconds.
I chose to use task.deferLater to do this, but seems like LoopingCall gives similar results..
I've boiled it down to the following example
>>>>
from twisted.internet import reactor, task
from twisted.trial import unittest
class MyLoop(object):
def __init__(self):
self.updateParameters()
def updateParameters(self):
d = task.deferLater(reactor, 2, self.dosomething)
def dosomething(self):
print "cool"
class LoopTestCase(unittest.TestCase):
def setUp(self):
self.cL = MyLoop()
def test_dummy(self):
d = defer.Deferred()
d.addCallback(lambda x: x)
d.callback(None)
return d # return a deferred just in case but happens either way
>>>>>
MyLoop works when running normally with a reactor.run(), but when I try run this test, I get the following error:
[ERROR]
Traceback (most recent call last):
Failure: twisted.trial.util.DirtyReactorAggregateError: Reactor was unclean.
DelayedCalls: (set twisted.internet.base.DelayedCall.debug = True to debug)
<DelayedCall 0x1018fbb90 [1.99891901016s] called=0 cancelled=0 Deferred.callback(None)>
So I don't fully understand what's going on to cause this. Any pointers would be appreciated
Thanks,
-Nick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://twistedmatrix.com/pipermail/twisted-python/attachments/20120523/3e0655d0/attachment.htm
More information about the Twisted-Python
mailing list