本文整理匯總了Python中weightless.http.HttpServer.shutdown方法的典型用法代碼示例。如果您正苦於以下問題:Python HttpServer.shutdown方法的具體用法?Python HttpServer.shutdown怎麽用?Python HttpServer.shutdown使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類weightless.http.HttpServer
的用法示例。
在下文中一共展示了HttpServer.shutdown方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: sendRequestAndReceiveResponse
# 需要導入模塊: from weightless.http import HttpServer [as 別名]
# 或者: from weightless.http.HttpServer import shutdown [as 別名]
def sendRequestAndReceiveResponse(self, request, response='The Response', recvSize=4096, compressResponse=False, extraStepAfterCompress=True):
self.responseCalled = False
@compose
def responseGenFunc(**kwargs):
yield response
yield ''
self.responseCalled = True
server = HttpServer(self.reactor, self.port, responseGenFunc, recvSize=recvSize, compressResponse=compressResponse)
server.listen()
sok = socket()
sok.connect(('localhost', self.port))
sok.send(request)
mockStdout = None
with self.stdout_replaced() as mockStdout:
while not self.responseCalled:
self.reactor.step()
if compressResponse and extraStepAfterCompress: #not everythingSent???:
self.reactor.step()
stdoutValue = mockStdout.getvalue()
if stdoutValue:
print stdoutValue
server.shutdown()
r = sok.recv(4096)
sok.close()
return r
示例2: AsyncReaderTest
# 需要導入模塊: from weightless.http import HttpServer [as 別名]
# 或者: from weightless.http.HttpServer import shutdown [as 別名]
class AsyncReaderTest(WeightlessTestCase):
def dispatch(self, *args, **kwargs):
return compose(self.handler(*args, **kwargs))
def setUp(self):
WeightlessTestCase.setUp(self)
self.reactor = Reactor()
self.port = randint(2**10, 2**16)
self.httpserver = HttpServer(self.reactor, self.port, self.dispatch)
self.httpserver.listen()
def tearDown(self):
self.httpserver.shutdown()
self.reactor.shutdown()
WeightlessTestCase.tearDown(self)
def testHttpRequest(self):
self.assertEquals('GET / HTTP/1.0\r\n', _httpRequest('GET', '/'))
self.assertEquals('POST / HTTP/1.0\r\n', _httpRequest('POST', '/'))
def testPassRequestThruToBackOfficeServer(self):
done = [False]
backofficeport = self.port + 1
def passthruhandler(*args, **kwargs):
request = kwargs['RequestURI']
response = yield httpget('localhost', backofficeport, request)
yield response
done[0] = True
self.handler = passthruhandler
expectedrequest = "GET /depot?arg=1&arg=2 HTTP/1.0\r\n\r\n"
responses = (i for i in ['hel', 'lo!'])
backofficeserver = testserver(backofficeport, responses, expectedrequest)
client = clientget('localhost', self.port, '/depot?arg=1&arg=2')
while not done[0]:
self.reactor.step()
response = client.recv(99)
self.assertEquals('hello!', response)
def testConnectFails(self):
exceptions = []
def failingserver(*args, **kwarg):
try:
response = yield httpget(*target)
except Exception, e:
exceptions.append(exc_info())
self.handler = failingserver
clientget('localhost', self.port, '/')
target = ('localhost', 'port', '/') # non-numeric port
try:
with self.stderr_replaced():
with self.loopingReactor():
while not exceptions:
pass
except Exception, e:
pass
示例3: testDefaultErrorHandler
# 需要導入模塊: from weightless.http import HttpServer [as 別名]
# 或者: from weightless.http.HttpServer import shutdown [as 別名]
def testDefaultErrorHandler(self):
def handler(**kwargs):
yield "OK"
server = HttpServer(self.reactor, self.port, handler, maxConnections=5)
server.listen()
self.reactor.getOpenConnections = lambda: 10
sock = socket()
sock.connect(('localhost', self.port))
self.reactor.step()
sock.send("GET / HTTP/1.0\r\n\r\n")
self.reactor.step().step().step()
self.assertEquals('HTTP/1.0 503 Service Unavailable\r\n\r\n<html><head></head><body><h1>Service Unavailable</h1></body></html>', sock.recv(1024))
server.shutdown()
示例4: testOnlyHandleAMaximumNrOfRequestsBelowBoundary
# 需要導入模塊: from weightless.http import HttpServer [as 別名]
# 或者: from weightless.http.HttpServer import shutdown [as 別名]
def testOnlyHandleAMaximumNrOfRequestsBelowBoundary(self):
def handler(**kwargs):
yield "OK"
def error_handler(**kwargs):
yield "FAIL"
server = HttpServer(self.reactor, self.port, handler, errorHandler=error_handler, maxConnections=10)
server.listen()
self.reactor.getOpenConnections = lambda: 5
sock = socket()
sock.connect(('localhost', self.port))
self.reactor.step()
sock.send("GET / HTTP/1.0\r\n\r\n")
self.reactor.step().step().step()
server.shutdown()
self.assertEquals('OK', sock.recv(1024))
示例5: AsyncReaderTest
# 需要導入模塊: from weightless.http import HttpServer [as 別名]
# 或者: from weightless.http.HttpServer import shutdown [as 別名]
class AsyncReaderTest(WeightlessTestCase):
def setUp(self):
WeightlessTestCase.setUp(self)
self.port = PortNumberGenerator.next()
self.httpserver = HttpServer(self.reactor, self.port, self._dispatch)
self.httpserver.listen()
def tearDown(self):
self.httpserver.shutdown()
WeightlessTestCase.tearDown(self)
def testRequestLine(self):
self.assertEquals('GET / HTTP/1.0\r\n', _requestLine('GET', '/'))
self.assertEquals('POST / HTTP/1.0\r\n', _requestLine('POST', '/'))
def testEmptyRequestConvenientlyTranslatedToSlash(self):
self.assertEquals('GET / HTTP/1.0\r\n', _requestLine('GET', ''))
self.assertEquals('POST / HTTP/1.0\r\n', _requestLine('POST', ''))
def testPassRequestThruToBackOfficeServer(self):
backofficeport = PortNumberGenerator.next()
def passthruhandler(*args, **kwargs):
request = kwargs['RequestURI']
response = yield httpget('localhost', backofficeport, request)
yield response
self.handler = passthruhandler
expectedrequest = "GET /depot?arg=1&arg=2 HTTP/1.0\r\n\r\n"
responses = (i for i in ['hel', 'lo!'])
backofficeserver = testserver(backofficeport, responses, expectedrequest)
client = clientget('localhost', self.port, '/depot?arg=1&arg=2')
self._loopReactorUntilDone()
response = client.recv(99)
self.assertEquals('hello!', response)
def testPassRequestThruToBackOfficeServerWithHttpRequest(self):
backofficeport = PortNumberGenerator.next()
def passthruhandler(*args, **kwargs):
request = kwargs['RequestURI']
response = yield HttpRequest().httprequest(host='localhost', port=backofficeport, request=request)
yield response
self.handler = passthruhandler
expectedrequest = "GET /depot?arg=1&arg=2 HTTP/1.0\r\n\r\n"
responses = (i for i in ['hel', 'lo!'])
backofficeserver = testserver(backofficeport, responses, expectedrequest)
client = clientget('localhost', self.port, '/depot?arg=1&arg=2')
self._loopReactorUntilDone()
response = client.recv(99)
self.assertEquals('hello!', response)
@stderr_replaced
def testConnectFails(self):
def failingserver(*args, **kwarg):
response = yield httpget(*target)
self.handler = failingserver
clientget('localhost', self.port, '/')
target = ('localhost', 'port', '/') # non-numeric port
self._loopReactorUntilDone()
expectedTraceback = ignoreLineNumbers("""Traceback (most recent call last):
File "%(__file__)s", line 0, in handle
yield self.handler(*args, **kwargs)
File "%(__file__)s", line 85, in failingserver
response = yield httpget(*target)
File "%(httprequest.py)s", line 78, in httprequest
result = s.getResult()
File "%(suspend.py)s", line 34, in __call__
self._doNext(self)
File "%(httprequest.py)s", line 35, in _do
sok.connect((host, port))
File "<string>", line 1, in connect
TypeError: an integer is required
""" % fileDict)
if PYVERSION == "2.7":
expectedTraceback = ignoreLineNumbers("""Traceback (most recent call last):
File "%(__file__)s", line 0, in handle
yield self.handler(*args, **kwargs)
File "%(__file__)s", line 85, in failingserver
response = yield httpget(*target)
File "%(httprequest.py)s", line 78, in httprequest
result = s.getResult()
File "%(suspend.py)s", line 34, in __call__
self._doNext(self)
File "%(httprequest.py)s", line 35, in _do
sok.connect((host, port))
File "/usr/lib/python2.7/socket.py", line [#], in meth
return getattr(self._sock,name)(*args)
TypeError: an integer is required
""" % fileDict)
self.assertEquals(TypeError, self.error[0])
self.assertEqualsWS(expectedTraceback, ignoreLineNumbers(''.join(format_exception(*self.error))))
target = ('localhost', 87, '/') # invalid port
clientget('localhost', self.port, '/')
self._loopReactorUntilDone()
self.assertEquals(IOError, self.error[0])
target = ('UEYR^$*FD(#>NDJ.khfd9.(*njnd', PortNumberGenerator.next(), '/') # invalid host
clientget('localhost', self.port, '/')
#.........這裏部分代碼省略.........