On Thu, Oct 1, 2015 at 1:40 PM, Mashiat Sarker Shakkhar <mashiat.sarker@gmail.com> wrote:
Hi

I have a function that uses callLater extensively to schedule a number of different tasks. I don't want to get into the rationale behind such a design, but here is a contrived example which will help me explain my problem: 


    def b():

        '''Do some work'''


    def c():

        '''Do some more work'''


    def a(flag):

        if flag:

            return Reactor.callLater(300, b)

        else:

            return Reactor. callLater(100, c)


Now I want to test this function. Of course I can't wait for 5 minutes to ensure that `b` or `c` will indeed be called. What I need is some sort of mock clock which lets me fast forward time. Does any such thing exist in Twisted / Trial?


Yes there is! `MemoryReactorClock.advance` https://twistedmatrix.com/documents/current/api/twisted.test.proto_helpers.MemoryReactorClock.html does this for you.

An example usage can be seen in the tests for `HostnameEndpoint`https://github.com/twisted/twisted/blob/trunk/twisted/internet/test/test_endpoints.py#L2064

-Ashwini


 

Or is there any other approach to test such code?






 


Regards

Shakkhar


_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python