Browse Source

Merge pull request #2430 from erebus1/env_url_scheme_fix

make_test_environ_builder: use url_scheme from path if provided
pull/2438/merge
David Lord 7 years ago committed by GitHub
parent
commit
85fa8aabf5
  1. 3
      CHANGES
  2. 6
      flask/testing.py
  3. 8
      tests/test_testing.py

3
CHANGES

@ -104,6 +104,8 @@ Major release, unreleased
- The ``flask`` command and ``app.run`` will load environment variables using - The ``flask`` command and ``app.run`` will load environment variables using
from ``.env`` and ``.flaskenv`` files if python-dotenv is installed. from ``.env`` and ``.flaskenv`` files if python-dotenv is installed.
(`#2416`_) (`#2416`_)
- When passing a full URL to the test client, use the scheme in the URL instead
of the ``PREFERRED_URL_SCHEME``. (`#2436`_)
.. _#1421: https://github.com/pallets/flask/issues/1421 .. _#1421: https://github.com/pallets/flask/issues/1421
.. _#1489: https://github.com/pallets/flask/pull/1489 .. _#1489: https://github.com/pallets/flask/pull/1489
@ -134,6 +136,7 @@ Major release, unreleased
.. _#2412: https://github.com/pallets/flask/pull/2412 .. _#2412: https://github.com/pallets/flask/pull/2412
.. _#2414: https://github.com/pallets/flask/pull/2414 .. _#2414: https://github.com/pallets/flask/pull/2414
.. _#2416: https://github.com/pallets/flask/pull/2416 .. _#2416: https://github.com/pallets/flask/pull/2416
.. _#2436: https://github.com/pallets/flask/pull/2436
Version 0.12.2 Version 0.12.2
-------------- --------------

6
flask/testing.py

@ -44,8 +44,10 @@ def make_test_environ_builder(
url_scheme = app.config['PREFERRED_URL_SCHEME'] url_scheme = app.config['PREFERRED_URL_SCHEME']
url = url_parse(path) url = url_parse(path)
base_url = '{0}://{1}/{2}'.format( base_url = '{scheme}://{netloc}/{path}'.format(
url_scheme, url.netloc or http_host, app_root.lstrip('/') scheme=url.scheme or url_scheme,
netloc=url.netloc or http_host,
path=app_root.lstrip('/')
) )
path = url.path path = url.path

8
tests/test_testing.py

@ -104,6 +104,14 @@ def test_specify_url_scheme(app, client):
assert rv.data == b'https://localhost/' assert rv.data == b'https://localhost/'
def test_path_is_url(app):
eb = make_test_environ_builder(app, 'https://example.com/')
assert eb.url_scheme == 'https'
assert eb.host == 'example.com'
assert eb.script_root == ''
assert eb.path == '/'
def test_blueprint_with_subdomain(app, client): def test_blueprint_with_subdomain(app, client):
app.config['SERVER_NAME'] = 'example.com:1234' app.config['SERVER_NAME'] = 'example.com:1234'
app.config['APPLICATION_ROOT'] = '/foo' app.config['APPLICATION_ROOT'] = '/foo'

Loading…
Cancel
Save