forked from orbit-oss/flask
set session accessed for setdefault
This commit is contained in:
parent
ae133aa173
commit
5d9dd0b379
2 changed files with 27 additions and 18 deletions
|
|
@ -138,6 +138,11 @@ class SecureCookieSession(CallbackDict, SessionMixin):
|
|||
self.accessed = True
|
||||
return super(SecureCookieSession, self).get(key, default)
|
||||
|
||||
def setdefault(self, key, default=None):
|
||||
self.accessed = True
|
||||
return super(SecureCookieSession, self).setdefault(key, default)
|
||||
|
||||
|
||||
class NullSession(SecureCookieSession):
|
||||
"""Class used to generate nicer error messages if sessions are not
|
||||
available. Will still allow read-only access to the empty session
|
||||
|
|
|
|||
|
|
@ -533,20 +533,22 @@ def test_session_vary_cookie():
|
|||
app = flask.Flask(__name__)
|
||||
app.secret_key = 'testkey'
|
||||
|
||||
@app.route('/set-session')
|
||||
@app.route('/set')
|
||||
def set_session():
|
||||
flask.session['test'] = 'test'
|
||||
return ''
|
||||
|
||||
@app.route('/get-session')
|
||||
def get_session():
|
||||
s = flask.session.get('test')
|
||||
return ''
|
||||
@app.route('/get')
|
||||
def get():
|
||||
return flask.session.get('test')
|
||||
|
||||
@app.route('/get-session-with-dictionary')
|
||||
def get_session_with_dictionary():
|
||||
s = flask.session['test']
|
||||
return ''
|
||||
@app.route('/getitem')
|
||||
def getitem():
|
||||
return flask.session['test']
|
||||
|
||||
@app.route('/setdefault')
|
||||
def setdefault():
|
||||
return flask.session.setdefault('test', 'default')
|
||||
|
||||
@app.route('/no-vary-header')
|
||||
def no_vary_header():
|
||||
|
|
@ -554,17 +556,19 @@ def test_session_vary_cookie():
|
|||
|
||||
c = app.test_client()
|
||||
|
||||
rv = c.get('/set-session')
|
||||
assert rv.headers['Vary'] == 'Cookie'
|
||||
def expect(path, header=True):
|
||||
rv = c.get(path)
|
||||
|
||||
rv = c.get('/get-session')
|
||||
assert rv.headers['Vary'] == 'Cookie'
|
||||
if header:
|
||||
assert rv.headers['Vary'] == 'Cookie'
|
||||
else:
|
||||
assert 'Vary' not in rv.headers
|
||||
|
||||
rv = c.get('/get-session-with-dictionary')
|
||||
assert rv.headers['Vary'] == 'Cookie'
|
||||
|
||||
rv = c.get('/no-vary-header')
|
||||
assert 'Vary' not in rv.headers
|
||||
expect('/set')
|
||||
expect('/get')
|
||||
expect('/getitem')
|
||||
expect('/setdefault')
|
||||
expect('/no-vary-header', False)
|
||||
|
||||
|
||||
def test_flashes():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue