Browse Source

Added test & fix to prevent url_for from changing default _scheme in url_adapter

pull/1596/head
Lennart Paasse 9 years ago
parent
commit
e8ad768da5
  1. 2
      flask/helpers.py
  2. 10
      tests/test_helpers.py

2
flask/helpers.py

@ -303,6 +303,8 @@ def url_for(endpoint, **values):
if not external:
raise ValueError('When specifying _scheme, _external must be True')
url_adapter.url_scheme = scheme
else:
url_adapter.url_scheme = current_app.config['PREFERRED_URL_SCHEME']
try:
rv = url_adapter.build(endpoint, values, method=method,

10
tests/test_helpers.py

@ -578,6 +578,16 @@ class TestLogging(object):
'index',
_scheme='https')
def test_url_for_with_alternating_schemes(self):
app = flask.Flask(__name__)
@app.route('/')
def index():
return '42'
with app.test_request_context():
assert flask.url_for('index', _external=True) == 'http://localhost/'
assert flask.url_for('index', _external=True, _scheme='https') == 'https://localhost/'
assert flask.url_for('index', _external=True) == 'http://localhost/'
def test_url_with_method(self):
from flask.views import MethodView
app = flask.Flask(__name__)

Loading…
Cancel
Save