Merge branch 'master' into cookie-usability

This commit is contained in:
Raphael Deem 2017-01-25 21:24:30 -08:00 committed by GitHub
commit a162f2ce34
4 changed files with 33 additions and 12 deletions

View File

@ -107,13 +107,13 @@ Available events are:
```python
bp = Blueprint('my_blueprint')
@bp.listen('before_server_start')
async def setup_connection():
@bp.listener('before_server_start')
async def setup_connection(app, loop):
global database
database = mysql.connect(host='127.0.0.1'...)
@bp.listen('after_server_stop')
async def close_connection():
@bp.listener('after_server_stop')
async def close_connection(app, loop):
await database.close()
```

View File

@ -115,7 +115,8 @@ class Cookie(dict):
value.strftime("%a, %d-%b-%Y %T GMT")
))
elif key in self._flags:
output.append(self._keys[key])
if self[key]:
output.append(self._keys[key])
else:
output.append('%s=%s' % (self._keys[key], value))

View File

@ -271,15 +271,15 @@ def serve(host, port, request_handler, error_handler, before_start=None,
:param request_handler: Sanic request handler with middleware
:param error_handler: Sanic error handler with middleware
:param before_start: Function to be executed before the server starts
listening. Takes single argument `loop`
listening. Takes arguments `app` instance and `loop`
:param after_start: Function to be executed after the server starts
listening. Takes single argument `loop`
listening. Takes arguments `app` instance and `loop`
:param before_stop: Function to be executed when a stop signal is
received before it is respected. Takes single
argument `loop`
received before it is respected. Takes arguments
`app` instance and `loop`
:param after_stop: Function to be executed when a stop signal is
received after it is respected. Takes single
argument `loop`
received after it is respected. Takes arguments
`app` instance and `loop`
:param debug: Enables debug output (slows server)
:param request_timeout: time in seconds
:param ssl: SSLContext

View File

@ -26,6 +26,26 @@ def test_cookies():
assert response.text == 'Cookies are: working!'
assert response_cookies['right_back'].value == 'at you'
@pytest.mark.parametrize("httponly,expected", [
(False, False),
(True, True),
])
def test_false_cookies(httponly, expected):
app = Sanic('test_text')
@app.route('/')
def handler(request):
response = text('Cookies are: {}'.format(request.cookies['test']))
response.cookies['right_back'] = 'at you'
response.cookies['right_back']['httponly'] = httponly
return response
request, response = sanic_endpoint_test(app)
response_cookies = SimpleCookie()
response_cookies.load(response.headers.get('Set-Cookie', {}))
'HttpOnly' in response_cookies == expected
def test_http2_cookies():
app = Sanic('test_http2_cookies')
@ -74,4 +94,4 @@ def test_cookie_deletion():
assert int(response_cookies['i_want_to_die']['max-age']) == 0
with pytest.raises(KeyError):
hold_my_beer = response.cookies['i_never_existed']
hold_my_beer = response.cookies['i_never_existed']