本文整理汇总了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))
示例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))
示例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))
示例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()
示例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:]))
示例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)
示例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)
示例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)
示例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)
示例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)
示例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)
示例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)
示例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()
示例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))
示例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]))