upd test for connection lost error

This commit is contained in:
Maks Skorokhod 2017-10-09 15:50:57 +03:00
parent 7610c0fb2e
commit 64edf7ad9c
No known key found for this signature in database
GPG Key ID: 23233B8320707983

View File

@ -1,11 +1,17 @@
import uuid import uuid
import logging
from io import StringIO
from importlib import reload from importlib import reload
import pytest
from unittest.mock import Mock
import sanic
from sanic.response import text from sanic.response import text
from sanic.log import LOGGING_CONFIG_DEFAULTS from sanic.log import LOGGING_CONFIG_DEFAULTS
from sanic import Sanic from sanic import Sanic
from io import StringIO
import logging
logging_format = '''module: %(module)s; \ logging_format = '''module: %(module)s; \
function: %(funcName)s(); \ function: %(funcName)s(); \
@ -71,3 +77,31 @@ def test_logging_pass_customer_logconfig():
for fmt in [h.formatter for h in logging.getLogger('sanic.access').handlers]: for fmt in [h.formatter for h in logging.getLogger('sanic.access').handlers]:
assert fmt._fmt == modified_config['formatters']['access']['format'] assert fmt._fmt == modified_config['formatters']['access']['format']
@pytest.mark.parametrize('debug', (True, False, ))
def test_log_connection_lost(debug, monkeypatch):
""" Should not log Connection lost exception on non debug """
app = Sanic('connection_lost')
stream = StringIO()
root = logging.getLogger('root')
root.addHandler(logging.StreamHandler(stream))
monkeypatch.setattr(sanic.server, 'logger', root)
@app.route('/conn_lost')
async def conn_lost(request):
response = text('Ok')
response.output = Mock(side_effect=RuntimeError)
return response
with pytest.raises(ValueError):
# catch ValueError: Exception during request
app.test_client.get('/conn_lost', debug=debug)
log = stream.getvalue()
if debug:
assert log.startswith(
'Connection lost before response written @')
else:
'Connection lost before response written @' not in log