2016-12-26 14:41:10 +00:00
|
|
|
from sanic import Sanic
|
|
|
|
from sanic.server import HttpProtocol
|
|
|
|
from sanic.response import text
|
|
|
|
|
|
|
|
app = Sanic('test_custom_porotocol')
|
|
|
|
|
|
|
|
|
|
|
|
class CustomHttpProtocol(HttpProtocol):
|
|
|
|
|
|
|
|
def write_response(self, response):
|
|
|
|
if isinstance(response, str):
|
|
|
|
response = text(response)
|
|
|
|
self.transport.write(
|
|
|
|
response.output(self.request.version)
|
|
|
|
)
|
|
|
|
self.transport.close()
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/1')
|
|
|
|
async def handler_1(request):
|
|
|
|
return 'OK'
|
|
|
|
|
|
|
|
|
|
|
|
def test_use_custom_protocol():
|
|
|
|
server_kwargs = {
|
|
|
|
'protocol': CustomHttpProtocol
|
|
|
|
}
|
2017-02-14 19:51:20 +00:00
|
|
|
request, response = app.test_client.get(
|
|
|
|
'/1', server_kwargs=server_kwargs)
|
2016-12-26 14:41:10 +00:00
|
|
|
assert response.status == 200
|
|
|
|
assert response.text == 'OK'
|