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
|
self.accessed = True
|
||||||
return super(SecureCookieSession, self).get(key, default)
|
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 NullSession(SecureCookieSession):
|
||||||
"""Class used to generate nicer error messages if sessions are not
|
"""Class used to generate nicer error messages if sessions are not
|
||||||
available. Will still allow read-only access to the empty session
|
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 = flask.Flask(__name__)
|
||||||
app.secret_key = 'testkey'
|
app.secret_key = 'testkey'
|
||||||
|
|
||||||
@app.route('/set-session')
|
@app.route('/set')
|
||||||
def set_session():
|
def set_session():
|
||||||
flask.session['test'] = 'test'
|
flask.session['test'] = 'test'
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
@app.route('/get-session')
|
@app.route('/get')
|
||||||
def get_session():
|
def get():
|
||||||
s = flask.session.get('test')
|
return flask.session.get('test')
|
||||||
return ''
|
|
||||||
|
|
||||||
@app.route('/get-session-with-dictionary')
|
@app.route('/getitem')
|
||||||
def get_session_with_dictionary():
|
def getitem():
|
||||||
s = flask.session['test']
|
return flask.session['test']
|
||||||
return ''
|
|
||||||
|
@app.route('/setdefault')
|
||||||
|
def setdefault():
|
||||||
|
return flask.session.setdefault('test', 'default')
|
||||||
|
|
||||||
@app.route('/no-vary-header')
|
@app.route('/no-vary-header')
|
||||||
def no_vary_header():
|
def no_vary_header():
|
||||||
|
|
@ -554,17 +556,19 @@ def test_session_vary_cookie():
|
||||||
|
|
||||||
c = app.test_client()
|
c = app.test_client()
|
||||||
|
|
||||||
rv = c.get('/set-session')
|
def expect(path, header=True):
|
||||||
assert rv.headers['Vary'] == 'Cookie'
|
rv = c.get(path)
|
||||||
|
|
||||||
rv = c.get('/get-session')
|
if header:
|
||||||
assert rv.headers['Vary'] == 'Cookie'
|
assert rv.headers['Vary'] == 'Cookie'
|
||||||
|
else:
|
||||||
|
assert 'Vary' not in rv.headers
|
||||||
|
|
||||||
rv = c.get('/get-session-with-dictionary')
|
expect('/set')
|
||||||
assert rv.headers['Vary'] == 'Cookie'
|
expect('/get')
|
||||||
|
expect('/getitem')
|
||||||
rv = c.get('/no-vary-header')
|
expect('/setdefault')
|
||||||
assert 'Vary' not in rv.headers
|
expect('/no-vary-header', False)
|
||||||
|
|
||||||
|
|
||||||
def test_flashes():
|
def test_flashes():
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue