Merge branch 'master' into logging-refactor
This commit is contained in:
commit
add9d363c5
|
@ -150,10 +150,7 @@ class HttpProtocol(asyncio.Protocol):
|
|||
self._request_stream_task.cancel()
|
||||
if self._request_handler_task:
|
||||
self._request_handler_task.cancel()
|
||||
try:
|
||||
raise RequestTimeout('Request Timeout')
|
||||
except RequestTimeout as exception:
|
||||
self.write_error(exception)
|
||||
self.write_error(RequestTimeout('Request Timeout'))
|
||||
|
||||
def response_timeout_callback(self):
|
||||
# Check if elapsed time since response was initiated exceeds our
|
||||
|
@ -170,10 +167,7 @@ class HttpProtocol(asyncio.Protocol):
|
|||
self._request_stream_task.cancel()
|
||||
if self._request_handler_task:
|
||||
self._request_handler_task.cancel()
|
||||
try:
|
||||
raise ServiceUnavailable('Response Timeout')
|
||||
except ServiceUnavailable as exception:
|
||||
self.write_error(exception)
|
||||
self.write_error(ServiceUnavailable('Response Timeout'))
|
||||
|
||||
def keep_alive_timeout_callback(self):
|
||||
# Check if elapsed time since last response exceeds our configured
|
||||
|
@ -199,8 +193,7 @@ class HttpProtocol(asyncio.Protocol):
|
|||
# memory limits
|
||||
self._total_request_size += len(data)
|
||||
if self._total_request_size > self.request_max_size:
|
||||
exception = PayloadTooLarge('Payload Too Large')
|
||||
self.write_error(exception)
|
||||
self.write_error(PayloadTooLarge('Payload Too Large'))
|
||||
|
||||
# Create parser if this is the first time we're receiving data
|
||||
if self.parser is None:
|
||||
|
@ -218,8 +211,7 @@ class HttpProtocol(asyncio.Protocol):
|
|||
message = 'Bad Request'
|
||||
if self._debug:
|
||||
message += '\n' + traceback.format_exc()
|
||||
exception = InvalidUsage(message)
|
||||
self.write_error(exception)
|
||||
self.write_error(InvalidUsage(message))
|
||||
|
||||
def on_url(self, url):
|
||||
if not self.url:
|
||||
|
@ -233,8 +225,7 @@ class HttpProtocol(asyncio.Protocol):
|
|||
if value is not None:
|
||||
if self._header_fragment == b'Content-Length' \
|
||||
and int(value) > self.request_max_size:
|
||||
exception = PayloadTooLarge('Payload Too Large')
|
||||
self.write_error(exception)
|
||||
self.write_error(PayloadTooLarge('Payload Too Large'))
|
||||
try:
|
||||
value = value.decode()
|
||||
except UnicodeDecodeError:
|
||||
|
@ -433,7 +424,7 @@ class HttpProtocol(asyncio.Protocol):
|
|||
self.log_response(response)
|
||||
try:
|
||||
self.transport.close()
|
||||
except AttributeError as e:
|
||||
except AttributeError:
|
||||
logger.debug('Connection lost before server could close it.')
|
||||
|
||||
def bail_out(self, message, from_error=False):
|
||||
|
@ -443,8 +434,7 @@ class HttpProtocol(asyncio.Protocol):
|
|||
self.transport.get_extra_info('peername'))
|
||||
logger.debug('Exception:', exc_info=True)
|
||||
else:
|
||||
exception = ServerError(message)
|
||||
self.write_error(exception)
|
||||
self.write_error(ServerError(message))
|
||||
logger.error(message)
|
||||
|
||||
def cleanup(self):
|
||||
|
|
|
@ -15,24 +15,28 @@ def test_load_from_object(app):
|
|||
assert app.config.CONFIG_VALUE == 'should be used'
|
||||
assert 'not_for_config' not in app.config
|
||||
|
||||
|
||||
def test_auto_load_env():
|
||||
environ["SANIC_TEST_ANSWER"] = "42"
|
||||
app = Sanic()
|
||||
assert app.config.TEST_ANSWER == 42
|
||||
del environ["SANIC_TEST_ANSWER"]
|
||||
|
||||
|
||||
def test_dont_load_env():
|
||||
environ["SANIC_TEST_ANSWER"] = "42"
|
||||
app = Sanic(load_env=False)
|
||||
assert getattr(app.config, 'TEST_ANSWER', None) == None
|
||||
assert getattr(app.config, 'TEST_ANSWER', None) is None
|
||||
del environ["SANIC_TEST_ANSWER"]
|
||||
|
||||
|
||||
def test_load_env_prefix():
|
||||
environ["MYAPP_TEST_ANSWER"] = "42"
|
||||
app = Sanic(load_env='MYAPP_')
|
||||
assert app.config.TEST_ANSWER == 42
|
||||
del environ["MYAPP_TEST_ANSWER"]
|
||||
|
||||
|
||||
def test_load_from_file(app):
|
||||
config = b"""
|
||||
VALUE = 'some value'
|
||||
|
@ -68,12 +72,16 @@ def test_load_from_envvar(app):
|
|||
|
||||
|
||||
def test_load_from_missing_envvar(app):
|
||||
with pytest.raises(RuntimeError):
|
||||
with pytest.raises(RuntimeError) as e:
|
||||
app.config.from_envvar('non-existent variable')
|
||||
assert str(e.value) == ("The environment variable 'non-existent "
|
||||
"variable' is not set and thus configuration "
|
||||
"could not be loaded.")
|
||||
|
||||
|
||||
def test_overwrite_exisiting_config(app):
|
||||
app.config.DEFAULT = 1
|
||||
|
||||
class Config:
|
||||
DEFAULT = 2
|
||||
|
||||
|
@ -82,5 +90,6 @@ def test_overwrite_exisiting_config(app):
|
|||
|
||||
|
||||
def test_missing_config(app):
|
||||
with pytest.raises(AttributeError):
|
||||
with pytest.raises(AttributeError) as e:
|
||||
app.config.NON_EXISTENT
|
||||
assert str(e.value) == ("Config has no 'NON_EXISTENT'")
|
||||
|
|
Loading…
Reference in New Issue
Block a user