Add invalid response object error handling

This commit is contained in:
Eli Uriegas 2016-12-25 10:37:23 -08:00
parent 6cf3754051
commit 68f6553181
2 changed files with 13 additions and 4 deletions

View File

@ -21,6 +21,10 @@ class ServerError(SanicException):
status_code = 500
class InvalidResponseObject(SanicException):
status_code = 500
class FileNotFound(NotFound):
status_code = 404

View File

@ -6,7 +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
from .exceptions import ServerError, InvalidResponseObject
try:
import uvloop as async_loop
@ -150,9 +150,14 @@ class HttpProtocol(asyncio.Protocol):
try:
keep_alive = self.parser.should_keep_alive() \
and not self.signal.stopped
try:
self.transport.write(
response.output(
self.request.version, keep_alive, self.request_timeout))
self.request.version, keep_alive,
self.request_timeout))
except AttributeError:
raise InvalidResponseObject(
'Invalid response object, must be of type HTTPResponse')
if not keep_alive:
self.transport.close()
else: