Merge pull request #223 from r0fls/115
Raise error if response is malformed.
This commit is contained in:
commit
a116666d55
|
@ -6,6 +6,7 @@ from signal import SIGINT, SIGTERM
|
|||
from time import time
|
||||
from httptools import HttpRequestParser
|
||||
from httptools.parser.errors import HttpParserError
|
||||
from .exceptions import ServerError
|
||||
|
||||
try:
|
||||
import uvloop as async_loop
|
||||
|
@ -173,8 +174,9 @@ class HttpProtocol(asyncio.Protocol):
|
|||
"Writing error failed, connection closed {}".format(e))
|
||||
|
||||
def bail_out(self, message):
|
||||
log.debug(message)
|
||||
self.transport.close()
|
||||
exception = ServerError(message)
|
||||
self.write_error(exception)
|
||||
log.error(message)
|
||||
|
||||
def cleanup(self):
|
||||
self.parser = None
|
||||
|
|
|
@ -2,6 +2,7 @@ from json import loads as json_loads, dumps as json_dumps
|
|||
from sanic import Sanic
|
||||
from sanic.response import json, text
|
||||
from sanic.utils import sanic_endpoint_test
|
||||
from sanic.exceptions import ServerError
|
||||
|
||||
|
||||
# ------------------------------------------------------------ #
|
||||
|
@ -32,6 +33,22 @@ def test_text():
|
|||
assert response.text == 'Hello'
|
||||
|
||||
|
||||
def test_invalid_response():
|
||||
app = Sanic('test_invalid_response')
|
||||
|
||||
@app.exception(ServerError)
|
||||
def handler_exception(request, exception):
|
||||
return text('Internal Server Error.', 500)
|
||||
|
||||
@app.route('/')
|
||||
async def handler(request):
|
||||
return 'This should fail'
|
||||
|
||||
request, response = sanic_endpoint_test(app)
|
||||
assert response.status == 500
|
||||
assert response.text == "Internal Server Error."
|
||||
|
||||
|
||||
def test_json():
|
||||
app = Sanic('test_json')
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user