From 723e6650048bc8097da20b23ebddcd4c0ad6bc61 Mon Sep 17 00:00:00 2001 From: David Lord Date: Mon, 26 Jun 2017 07:46:33 -0700 Subject: [PATCH] remove deprecated Request.module --- flask/helpers.py | 38 +++++++++++++++++++------------------- flask/wrappers.py | 17 ----------------- tests/test_deprecations.py | 13 ------------- 3 files changed, 19 insertions(+), 49 deletions(-) diff --git a/flask/helpers.py b/flask/helpers.py index 94c5ce77..5adb0e2a 100644 --- a/flask/helpers.py +++ b/flask/helpers.py @@ -268,40 +268,40 @@ def url_for(endpoint, **values): """ appctx = _app_ctx_stack.top reqctx = _request_ctx_stack.top + if appctx is None: - raise RuntimeError('Attempted to generate a URL without the ' - 'application context being pushed. This has to be ' - 'executed when application context is available.') + raise RuntimeError( + 'Attempted to generate a URL without the application context being' + ' pushed. This has to be executed when application context is' + ' available.' + ) # If request specific information is available we have some extra # features that support "relative" URLs. if reqctx is not None: url_adapter = reqctx.url_adapter blueprint_name = request.blueprint - if not reqctx.request._is_old_module: - if endpoint[:1] == '.': - if blueprint_name is not None: - endpoint = blueprint_name + endpoint - else: - endpoint = endpoint[1:] - else: - # TODO: get rid of this deprecated functionality in 1.0 - if '.' not in endpoint: - if blueprint_name is not None: - endpoint = blueprint_name + '.' + endpoint - elif endpoint.startswith('.'): + + if endpoint[:1] == '.': + if blueprint_name is not None: + endpoint = blueprint_name + endpoint + else: endpoint = endpoint[1:] + external = values.pop('_external', False) # Otherwise go with the url adapter from the appctx and make # the URLs external by default. else: url_adapter = appctx.url_adapter + if url_adapter is None: - raise RuntimeError('Application was not able to create a URL ' - 'adapter for request independent URL generation. ' - 'You might be able to fix this by setting ' - 'the SERVER_NAME config variable.') + raise RuntimeError( + 'Application was not able to create a URL adapter for request' + ' independent URL generation. You might be able to fix this by' + ' setting the SERVER_NAME config variable.' + ) + external = values.pop('_external', True) anchor = values.pop('_anchor', None) diff --git a/flask/wrappers.py b/flask/wrappers.py index 918b0a93..4dde5f3c 100644 --- a/flask/wrappers.py +++ b/flask/wrappers.py @@ -141,10 +141,6 @@ class Request(RequestBase, JSONMixin): #: something similar. routing_exception = None - # Switched by the request context until 1.0 to opt in deprecated - # module functionality. - _is_old_module = False - @property def max_content_length(self): """Read-only view of the ``MAX_CONTENT_LENGTH`` config key.""" @@ -161,19 +157,6 @@ class Request(RequestBase, JSONMixin): if self.url_rule is not None: return self.url_rule.endpoint - @property - def module(self): - """The name of the current module if the request was dispatched - to an actual module. This is deprecated functionality, use blueprints - instead. - """ - from warnings import warn - warn(DeprecationWarning('modules were deprecated in favor of ' - 'blueprints. Use request.blueprint ' - 'instead.'), stacklevel=2) - if self._is_old_module: - return self.blueprint - @property def blueprint(self): """The name of the current blueprint""" diff --git a/tests/test_deprecations.py b/tests/test_deprecations.py index 6ab63dd4..5dfff127 100644 --- a/tests/test_deprecations.py +++ b/tests/test_deprecations.py @@ -9,8 +9,6 @@ :license: BSD, see LICENSE for more details. """ -import pytest - import flask @@ -26,14 +24,3 @@ class TestRequestDeprecation(object): client.post('/', data='{"spam": 42}', content_type='application/json') recwarn.pop(DeprecationWarning) - - def test_request_module(self, recwarn, app, client): - """Request.module is deprecated""" - - @app.route('/') - def index(): - assert flask.request.module is None - return 'OK' - - client.get('/') - recwarn.pop(DeprecationWarning)