当前位置: 首页>>代码示例>>Python>>正文


Python Reactor.addTimer方法代码示例

本文整理汇总了Python中weightless.io.Reactor.addTimer方法的典型用法代码示例。如果您正苦于以下问题:Python Reactor.addTimer方法的具体用法?Python Reactor.addTimer怎么用?Python Reactor.addTimer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在weightless.io.Reactor的用法示例。


在下文中一共展示了Reactor.addTimer方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: testInvalidTime

# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addTimer [as 别名]
 def testInvalidTime(self):
     reactor = Reactor()
     try:
         reactor.addTimer(-1, None)
         self.fail('should raise exeption')
     except Exception, e:
         self.assertEquals('Timeout must be >= 0. It was -1.', str(e))
开发者ID:blep,项目名称:weightless-core,代码行数:9,代码来源:reactortest.py

示例2: testRemoveTimer

# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addTimer [as 别名]
 def testRemoveTimer(self):
     def itsTime(): pass
     reactor = Reactor()
     token1 = reactor.addTimer(0.05, itsTime)
     token2 = reactor.addTimer(0.051, itsTime)
     reactor.removeTimer(token1)
     self.assertEquals(1, len(reactor._timers))
开发者ID:blep,项目名称:weightless-core,代码行数:9,代码来源:reactortest.py

示例3: testPost

# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addTimer [as 别名]
    def testPost(self):
        port = randint(2048, 4096)
        reactor = Reactor()
        request = "POST / HTTP/1.1\r\nHost: localhost\r\nTransfer-Encoding: chunked\r\nSOAPAction: blah\r\nUser-Agent: Weightless/v%s\r\n\r\n1\r\nA\r\n1\r\nB\r\n1\r\nC\r\n0\r\n\r\n" % WlVersion
        serverThread = server(port, "HTTP/1.1 200 OK\r\n\r\nresponse", request, loop=9)
        sentData = []
        done = []
        def send(data):
            sentData.append(data)
        def throw(exception):
            if isinstance(exception, StopIteration):
                done.append(True)
        def next():
            yield "A"
            yield "B"
            yield "C"
            yield None

        reader = HttpReaderFacade(reactor, "http://localhost:%s" % port, send, errorHandler=throw, timeout=0.5, headers={'SOAPAction': 'blah'}, bodyHandler=next)

        reactor.addTimer(3.0, lambda: self.fail("Test Stuck"))
        while not done:
            reactor.step()

        self.assertEquals(['response'], sentData[1:])
        self.assertEquals('200', sentData[0]['StatusCode'])
        expected = 'POST / HTTP/1.1\r\nHost: localhost\r\nTransfer-Encoding: chunked\r\nSOAPAction: blah\r\nUser-Agent: Weightless/v%s\r\n\r\n' % WlVersion + '1\r\nA\r\n' + '1\r\nB\r\n' + '1\r\nC\r\n' + '0\r\n\r\n'
        self.assertEquals(expected, "".join(request))
开发者ID:blep,项目名称:weightless-core,代码行数:30,代码来源:httpreadertest.py

示例4: testGlobalReactor

# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addTimer [as 别名]
 def testGlobalReactor(self):
     from weightless.io import reactor
     thereactor = Reactor()
     def handler():
         self.assertEquals(thereactor, reactor())
     thereactor.addTimer(0, handler)
     thereactor.step()
开发者ID:blep,项目名称:weightless-core,代码行数:9,代码来源:reactortest.py

示例5: testDealWithChunkedResponse

# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addTimer [as 别名]
    def testDealWithChunkedResponse(self):
        port = randint(2048, 4096)
        reactor = Reactor()
        sentData = []
        done = []
        expectedrequest = "GET / HTTP/1.1\r\nHost: localhost\r\nUser-Agent: Weightless/v%s\r\n\r\n" % WlVersion
        serverThread = server(port, "\r\n".join("""HTTP/1.1 302 Found
Date: Fri, 26 Oct 2007 07:23:26 GMT
Server: Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 mod_ssl/2.2.3 OpenSSL/0.9.8c
Location: /page/softwarestudio.page/show
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8

4F
<p>The document has moved <a href="/page/softwarestudio.page/show">here</a></p>

0


""".split("\n")), expectedrequest)
        class Handler:
            def send(self, data):
                sentData.append(data)
            def throw(self, exception):
                if isinstance(exception, StopIteration):
                    done.append(True)
        reader = HttpReader(reactor, Connector(reactor, 'localhost', int(port)), Handler(), 'GET', 'localhost', '/', recvSize=5)

        reactor.addTimer(0.2, lambda: self.fail("Test Stuck"))
        while not done:
            reactor.step()
        self.assertEquals("""<p>The document has moved <a href="/page/softwarestudio.page/show">here</a></p>""", "".join(sentData[1:]))
开发者ID:blep,项目名称:weightless-core,代码行数:34,代码来源:httpreadertest.py

示例6: testTimerDoesNotMaskAssertionErrors

# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addTimer [as 别名]
 def testTimerDoesNotMaskAssertionErrors(self):
     reactor = Reactor()
     reactor.addTimer(0, lambda: self.fail("Assertion Error"))
     try:
         reactor.step()
         raise Exception('step() must raise AssertionError')
     except AssertionError:
         self.assertEquals([], reactor._timers)
开发者ID:blep,项目名称:weightless-core,代码行数:10,代码来源:reactortest.py

示例7: testTimerDoesNotMaskSystemExit

# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addTimer [as 别名]
 def testTimerDoesNotMaskSystemExit(self):
     reactor = Reactor()
     def raiser():
         raise SystemExit('shutdown...')
     reactor.addTimer(0, raiser)
     try:
         reactor.step()
         self.fail('step() must raise SystemExit')
     except SystemExit:
         self.assertEquals([], reactor._timers)
开发者ID:blep,项目名称:weightless-core,代码行数:12,代码来源:reactortest.py

示例8: testTimerDoesNotMaskKeyboardInterrupt

# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addTimer [as 别名]
 def testTimerDoesNotMaskKeyboardInterrupt(self):
     reactor = Reactor()
     def raiser():
         raise KeyboardInterrupt('Ctrl-C')
     reactor.addTimer(0, raiser)
     try:
         reactor.step()
         self.fail('step() must raise KeyboardInterrupt')
     except KeyboardInterrupt:
         self.assertEquals([], reactor._timers)
开发者ID:blep,项目名称:weightless-core,代码行数:12,代码来源:reactortest.py

示例9: testRemoveTimerById

# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addTimer [as 别名]
 def testRemoveTimerById(self):
     def itsTime(): pass
     reactor = Reactor()
     token1 = reactor.addTimer(0.051, itsTime)
     token2 = reactor.addTimer(0.051, itsTime)
     token3 = reactor.addTimer(0.051, itsTime)
     token3.time = token2.time = token1.time  # whiteboxing, can happen in real code, not easy to reproduce in a test situation.
     self.assertEquals(token1.callback, token2.callback)
     self.assertEquals(token2.callback, token3.callback)
     reactor.removeTimer(token2)
     self.assertEquals([token1, token3], reactor._timers)
开发者ID:blep,项目名称:weightless-core,代码行数:13,代码来源:reactortest.py

示例10: testReadFollowsTimer

# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addTimer [as 别名]
 def testReadFollowsTimer(self):
     reactor = Reactor(lambda r,w,o,t: (r,w,o))
     t = []
     def timer():
         t.append('t1')
     def read():
         t.append('t2')
     reactor.addTimer(0, timer)
     reactor.addReader('sok1', read)
     reactor.step()
     self.assertEquals(['t1', 't2'], t)
开发者ID:blep,项目名称:weightless-core,代码行数:13,代码来源:reactortest.py

示例11: testMustRemoveToBeExecutedTimerNotTheFirstOne

# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addTimer [as 别名]
    def testMustRemoveToBeExecutedTimerNotTheFirstOne(self):
        reactor = Reactor()
        executed = []
        def addNewTimer():
            reactor.addTimer(0.001, lambda: executed.append('newTimer'))
            sleep(0.15)
        reactor.addTimer(0, lambda: (addNewTimer(), executed.append('zero')))
        reactor.addTimer(0.1, lambda: executed.append('one'))

        reactor.step()
        reactor.step()
        self.assertEquals(0, len(reactor._timers))
        self.assertEquals(['zero', 'newTimer', 'one'], executed)
开发者ID:blep,项目名称:weightless-core,代码行数:15,代码来源:reactortest.py

示例12: testTimerDeletesRead

# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addTimer [as 别名]
 def testTimerDeletesRead(self):
     reactor = Reactor(lambda r,w,o,t: (r,w,o))
     self.read = self.timer = False
     def read():
         self.read = True
     def timer():
         self.timer = True
         reactor.removeReader('sok1')
     reactor.addTimer(0, timer)
     reactor.addReader('sok1', read)
     reactor.step()
     self.assertTrue(self.timer)
     self.assertFalse(self.read)
开发者ID:blep,项目名称:weightless-core,代码行数:15,代码来源:reactortest.py

示例13: testReadChunkedPost

# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addTimer [as 别名]
    def testReadChunkedPost(self):
        self.requestData = {}
        def handler(**kwargs):
            self.requestData = kwargs

        reactor = Reactor()
        server = HttpServer(reactor, self.port, handler, timeout=0.01, recvSize=3)
        server.listen()
        sok = socket()
        sok.connect(('localhost', self.port))
        sok.send('POST / HTTP/1.0\r\nContent-Type: application/x-www-form-urlencoded\r\nTransfer-Encoding: chunked\r\n\r\n5\r\nabcde\r\n5\r\nfghij\r\n0\r\n')

        reactor.addTimer(0.2, lambda: self.fail("Test Stuck"))
        while self.requestData.get('Body', None) != 'abcdefghij':
            reactor.step()
开发者ID:blep,项目名称:weightless-core,代码行数:17,代码来源:httpservertest.py

示例14: testInvalidPOSTRequestStartsOnlyOneTimer

# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addTimer [as 别名]
 def testInvalidPOSTRequestStartsOnlyOneTimer(self):
     # problem in found in OAS, timers not removed properly when whole body hasnt been read yet
     _httpserver.RECVSIZE = 1
     reactor = Reactor()
     timers = []
     orgAddTimer = reactor.addTimer
     def addTimerInterceptor(*timer):
         timers.append(timer)
         return orgAddTimer(*timer)
     reactor.addTimer = addTimerInterceptor
     server = HttpServer(reactor, self.port, lambda **kwargs: (x for x in []), timeout=0.01)
     server.listen()
     sok = socket()
     sok.connect(('localhost', self.port))
     sok.send('POST / HTTP/1.0\r\nContent-Length: 10\r\n\r\n')
     reactor.step()
     sok.send(".")
     sleep(0.1)
     reactor.step()
     sok.send(".")
     reactor.step()
     sleep(0.1)
     while select([sok],[], [], 0) != ([sok], [], []):
         reactor.step()
     self.assertEquals(2, len(timers))
开发者ID:blep,项目名称:weightless-core,代码行数:27,代码来源:httpservertest.py

示例15: testTimeoutOnSilentServer

# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addTimer [as 别名]
 def testTimeoutOnSilentServer(self):
     port = randint(2**10, 2**16)
     reactor = Reactor()
     expectedrequest = "GET / HTTP/1.1\r\nHost: localhost\r\nUser-Agent: Weightless/v%s\r\n\r\n" % WlVersion
     serverThread = server(port, "", expectedrequest)
     errorArgs = []
     class Handler:
         def throw(self, exception):
             errorArgs.append(exception)
     def error(exception):
         errorArgs.append(exception)
     reader = HttpReader(reactor, Connector(reactor, 'localhost', port), Handler(), "GET", "localhost", "/", timeout=0.01)
     reactor.addTimer(0.2, lambda: self.fail("Test Stuck"))
     while not errorArgs:
         reactor.step()
     serverThread.join()
     self.assertEquals('timeout while receiving data', str(errorArgs[0]))
开发者ID:blep,项目名称:weightless-core,代码行数:19,代码来源:httpreadertest.py


注:本文中的weightless.io.Reactor.addTimer方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。