本文整理汇总了Python中weightless.io.Reactor.addReader方法的典型用法代码示例。如果您正苦于以下问题:Python Reactor.addReader方法的具体用法?Python Reactor.addReader怎么用?Python Reactor.addReader使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类weightless.io.Reactor
的用法示例。
在下文中一共展示了Reactor.addReader方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testConnect
# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addReader [as 别名]
def testConnect(self):
self.req = False
serverResponse = 'Hello World'
def onRequest(**kwargs):
yield 'HTTP/1.0 200 OK\r\n\r\n' + serverResponse
self.req = True
port = randint(15000, 16000)
reactor = Reactor()
try:
server = HttpsServer(reactor, port, onRequest, keyfile='ssl/server.pkey', certfile='ssl/server.cert')
server.listen()
p = Popen('wget -O - --no-check-certificate --quiet https://localhost:%s' % port, shell=True, stdout=PIPE)
popenStdout = []
def readPopenStdout():
popenStdout.append(p.stdout.read())
reactor.addReader(p.stdout, readPopenStdout)
while not self.req:
reactor.step()
reactor.step()
self.assertEquals(1, len(popenStdout))
self.assertEquals(serverResponse, popenStdout[0])
finally:
server.shutdown()
示例2: testAddSocketRaisesException
# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addReader [as 别名]
def testAddSocketRaisesException(self):
class Sok: # raise exception when put into set
def __hash__(self): raise Exception('aap')
reactor = Reactor()
try:
reactor.addReader(Sok(), None)
self.fail()
except Exception, e:
self.assertEquals('aap', str(e))
示例3: testAddSocketReading
# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addReader [as 别名]
def testAddSocketReading(self):
class Sok:
def __hash__(self): return 1
reactor = Reactor()
mockSok = Sok()
self.assertTrue(mockSok not in reactor._readers)
reactor.addReader(mockSok, lambda: None)
self.assertTrue(mockSok in reactor._readers)
reactor.removeReader(mockSok)
self.assertFalse(mockSok in reactor._readers)
示例4: testWriteFollowsRead
# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addReader [as 别名]
def testWriteFollowsRead(self):
reactor = Reactor(lambda r,w,o,t: (r,w,o))
t = []
def read():
t.append('t1')
def write():
t.append('t2')
reactor.addWriter('sok1', write)
reactor.addReader('sok1', read)
reactor.step()
self.assertEquals(['t1', 't2'], t)
示例5: testDoNotDieButLogOnProgrammingErrors
# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addReader [as 别名]
def testDoNotDieButLogOnProgrammingErrors(self):
reactor = Reactor()
reactor.addReader('not a sok', lambda: None)
try:
sys.stderr = StringIO()
reactor.step()
sys.stderr.seek(0)
self.assertTrue('TypeError: argument must be an int' in sys.stderr.getvalue())
sys.stderr = sys.__stderr__
except TypeError:
self.fail('must not fail')
示例6: testReadFollowsTimer
# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addReader [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)
示例7: testReadDeletesWrite
# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addReader [as 别名]
def testReadDeletesWrite(self):
reactor = Reactor(lambda r,w,o,t: (r,w,o))
self.read = self.write = False
def read():
self.read = True
reactor.removeWriter('sok1')
def write():
self.write = True
reactor.addWriter('sok1', write)
reactor.addReader('sok1', read)
reactor.step()
self.assertTrue(self.read)
self.assertFalse(self.write)
示例8: testAssertionErrorInReadCallback
# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addReader [as 别名]
def testAssertionErrorInReadCallback(self):
sys.stderr = StringIO()
try:
def callback(): raise AssertionError('here is the assertion')
reactor = Reactor(lambda r, w, o, t: (r,w,o))
reactor.addReader(9, callback)
try:
reactor.step()
self.fail('must raise exception')
except AssertionError, e:
self.assertEquals('here is the assertion', str(e))
finally:
sys.stderr = sys.__stderr__
示例9: testTimerDeletesRead
# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addReader [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)
示例10: testReactorResumeReader
# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addReader [as 别名]
def testReactorResumeReader(self):
handle = ['initial value']
reactor = Reactor(select_func=mockselect)
def callback():
handle[0] = reactor.suspend()
yield
yield
sok = MockSocket()
reactor.addReader(sok, callback().next)
reactor.step()
reactor.resumeReader(handle[0])
reactor.step()
self.assertFalse(sok in reactor._writers)
self.assertTrue(sok in reactor._readers)
self.assertRaises(KeyError, reactor.resumeReader, handle[0])
示例11: testReadFile
# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addReader [as 别名]
def testReadFile(self):
reactor = Reactor()
fd, path = mkstemp()
os.write(fd, 'some data')
os.close(fd)
try:
f = open(path)
def readable():
self.readable = True
reactor.addReader(f, readable)
reactor.step()
self.assertTrue(self.readable)
finally:
f.close()
os.remove(path)
示例12: testGetRidOfClosedSocket
# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addReader [as 别名]
def testGetRidOfClosedSocket(self):
reactor = Reactor()
sok = socket()
sok.close()
callbacks = []
def callback():
callbacks.append(True)
reactor.addReader(sok, callback)
reactor.addWriter(sok, callback)
with self.stderr_replaced() as s:
reactor.step()
reactor.step()
self.assertTrue("Bad file descriptor" in s.getvalue(), s.getvalue())
self.assertEquals({}, reactor._readers)
self.assertEquals([True, True], callbacks)
示例13: testReactorSuspend
# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addReader [as 别名]
def testReactorSuspend(self):
handle = ['initial value']
reactor = Reactor(select_func=mockselect)
def callback():
handle[0] = reactor.suspend()
sok = MockSocket()
reactor.addReader(sok, callback)
self.assertTrue(sok in reactor._readers)
reactor.step()
self.assertTrue(sok not in reactor._readers)
sok = MockSocket()
reactor.addWriter(sok, callback)
self.assertTrue(sok in reactor._writers)
reactor.step()
self.assertTrue(sok not in reactor._writers)
self.assertTrue(handle[0] != None)
self.assertTrue(handle[0] != 'initial value')
示例14: testCleanUp
# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addReader [as 别名]
def testCleanUp(self):
reactor = Reactor(select_func=mockselect)
def handler():
reactor.suspend()
yield
reactor.addWriter(1, lambda: None)
reactor.addReader(2, lambda: None)
reactor.addReader(3, handler().next)
reactor.step()
self.assertTrue(1 in reactor._writers)
reactor.cleanup(1)
self.assertFalse(1 in reactor._writers)
self.assertTrue(2 in reactor._readers)
reactor.cleanup(2)
self.assertFalse(2 in reactor._readers)
self.assertTrue(3 in reactor._suspended)
reactor.cleanup(3)
self.assertFalse(3 in reactor._suspended)
示例15: testReaderOrWriterDoesNotMaskSystemExit
# 需要导入模块: from weightless.io import Reactor [as 别名]
# 或者: from weightless.io.Reactor import addReader [as 别名]
def testReaderOrWriterDoesNotMaskSystemExit(self):
fd, path = mkstemp()
reactor = Reactor()
def raiser():
raise SystemExit('shutdown...')
reactor.addReader(sok=fd, sink=raiser)
self.assertEquals([raiser], [c.callback for c in reactor._readers.values()])
try:
reactor.step()
self.fail('step() must raise SystemExit')
except SystemExit:
self.assertEquals([], [c.callback for c in reactor._readers.values()])
fd, path = mkstemp()
reactor = Reactor()
reactor.addWriter(sok=fd, source=raiser)
try:
reactor.step()
self.fail('step() must raise SystemExit')
except SystemExit:
self.assertEquals([], [c.callback for c in reactor._readers.values()])