diff --git a/flask/helpers.py b/flask/helpers.py index 2bcdc10b..f37be677 100644 --- a/flask/helpers.py +++ b/flask/helpers.py @@ -1004,17 +1004,3 @@ def is_ip(value): return True return False - - -def patch_vary_header(response, value): - """Add a value to the ``Vary`` header if it is not already present.""" - - header = response.headers.get('Vary', '') - headers = [h for h in (h.strip() for h in header.split(',')) if h] - lower_value = value.lower() - - if not any(h.lower() == lower_value for h in headers): - headers.append(value) - - updated_header = ', '.join(headers) - response.headers['Vary'] = updated_header diff --git a/flask/sessions.py b/flask/sessions.py index a4b8cad1..3a5e2ac3 100644 --- a/flask/sessions.py +++ b/flask/sessions.py @@ -19,7 +19,6 @@ from itsdangerous import BadSignature, URLSafeTimedSerializer from werkzeug.datastructures import CallbackDict from werkzeug.http import http_date, parse_date -from flask.helpers import patch_vary_header from . import Markup, json from ._compat import iteritems, text_type from .helpers import is_ip, total_seconds @@ -407,7 +406,7 @@ class SecureCookieSessionInterface(SessionInterface): # Add a "Vary: Cookie" header if the session was accessed at all. if session.accessed: - patch_vary_header(response, 'Cookie') + response.vary.add('Cookie') if not self.should_set_cookie(app, session): return diff --git a/tests/test_basic.py b/tests/test_basic.py index e4d6b2f9..895f4f30 100644 --- a/tests/test_basic.py +++ b/tests/test_basic.py @@ -9,20 +9,21 @@ :license: BSD, see LICENSE for more details. """ -import pytest - -import re -import uuid -import time -import flask import pickle +import re +import time +import uuid from datetime import datetime from threading import Thread -from flask._compat import text_type -from werkzeug.exceptions import BadRequest, NotFound, Forbidden + +import pytest +import werkzeug.serving +from werkzeug.exceptions import BadRequest, Forbidden, NotFound from werkzeug.http import parse_date from werkzeug.routing import BuildError -import werkzeug.serving + +import flask +from flask._compat import text_type def test_options_work(app, client): @@ -523,14 +524,14 @@ def test_session_vary_cookie(app, client): @app.route('/vary-cookie-header-set') def vary_cookie_header_set(): response = flask.Response() - response.headers['Vary'] = 'Cookie' + response.vary.add('Cookie') flask.session['test'] = 'test' return response @app.route('/vary-header-set') def vary_header_set(): response = flask.Response() - response.headers['Vary'] = 'Accept-Encoding, Accept-Language' + response.vary.update(('Accept-Encoding', 'Accept-Language')) flask.session['test'] = 'test' return response