Skip to content

Commit 9dd61ee

Browse files
committed
Added testcase for redirect and session keeparound bug
1 parent 7f4c12b commit 9dd61ee

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

flask/testsuite/testing.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,32 @@ def index():
4646
rv = c.get('/')
4747
self.assert_equal(rv.data, 'http://localhost/')
4848

49+
def test_redirect_keep_session(self):
50+
app = flask.Flask(__name__)
51+
app.secret_key = 'testing'
52+
53+
@app.route('/', methods=['GET', 'POST'])
54+
def index():
55+
if flask.request.method == 'POST':
56+
return flask.redirect('/redirect')
57+
flask.session['data'] = 'foo'
58+
return 'index'
59+
60+
@app.route('/redirect')
61+
def redirect():
62+
return 'redirect'
63+
64+
with app.test_client() as c:
65+
ctx = app.test_request_context()
66+
ctx.push()
67+
rv = c.get('/')
68+
assert rv.data == 'index'
69+
assert flask.session.get('data') == 'foo'
70+
rv = c.post('/', data={}, follow_redirects=True)
71+
assert rv.data == 'redirect'
72+
assert flask.session.get('data') == 'foo'
73+
ctx.pop()
74+
4975
def test_session_transactions(self):
5076
app = flask.Flask(__name__)
5177
app.testing = True

0 commit comments

Comments
 (0)