Browse files

remove the deprecated request.response_* attributes

  • Loading branch information...
1 parent c41c76b commit f6f1d1685f09f1ecd3717c90e687a6e3652b4fdc @mmerickel mmerickel committed Sep 5, 2013
Showing with 10 additions and 211 deletions.
  1. +10 −0 CHANGES.txt
  2. +0 −18 docs/api/request.rst
  3. +0 −34 docs/narr/renderers.rst
  4. +0 −20 pyramid/renderers.py
  5. +0 −82 pyramid/request.py
  6. +0 −57 pyramid/tests/test_renderers.py
View
10 CHANGES.txt
@@ -1,3 +1,13 @@
+Next Release
+============
+
+Backwards Incompatibilities
+---------------------------
+
+- Removed the ``request.response_*`` varying attributes. These attributes
+ have been deprecated since Pyramid 1.1, and as per the deprecation policy,
+ have now been removed.
+
1.5a1 (2013-08-30)
==================
View
18 docs/api/request.rst
@@ -235,24 +235,6 @@
.. automethod:: resource_path
- .. attribute:: response_*
-
- In Pyramid 1.0, you could set attributes on a
- :class:`pyramid.request.Request` which influenced the behavior of
- *rendered* responses (views which use a :term:`renderer` and which
- don't directly return a response). These attributes began with
- ``response_``, such as ``response_headerlist``. If you needed to
- influence response values from a view that uses a renderer (such as the
- status code, a header, the content type, etc) you would set these
- attributes. See :ref:`response_prefixed_attrs` for further discussion.
- As of Pyramid 1.1, assignment to ``response_*`` attrs is deprecated.
- Assigning to one is still supported but will cause a deprecation
- warning to be emitted, and eventually the feature will be removed. For
- new code, instead of assigning ``response_*`` attributes to the
- request, use API of the :attr:`pyramid.request.Request.response`
- object (exposed to view code as ``request.response``) to influence
- rendered response behavior.
-
.. attribute:: json_body
This property will return the JSON-decoded variant of the request
View
34 docs/narr/renderers.rst
@@ -556,40 +556,6 @@ For more information on attributes of the request, see the API documentation
in :ref:`request_module`. For more information on the API of
``request.response``, see :attr:`pyramid.request.Request.response`.
-.. _response_prefixed_attrs:
-
-Deprecated Mechanism to Vary Attributes of Rendered Responses
--------------------------------------------------------------
-
-In previous releases of Pyramid (1.0 and before), the ``request.response``
-attribute did not exist. Instead, Pyramid required users to set special
-``response_`` -prefixed attributes of the request to influence response
-behavior. As of Pyramid 1.1, those request attributes are deprecated and
-their use will cause a deprecation warning to be issued when used. Until
-their existence is removed completely, we document them below, for benefit of
-people with older code bases.
-
-``response_content_type``
- Defines the content-type of the resulting response,
- e.g. ``text/xml``.
-
-``response_headerlist``
- A sequence of tuples describing header values that should be set in the
- response, e.g. ``[('Set-Cookie', 'abc=123'), ('X-My-Header', 'foo')]``.
-
-``response_status``
- A WSGI-style status code (e.g. ``200 OK``) describing the status of the
- response.
-
-``response_charset``
- The character set (e.g. ``UTF-8``) of the response.
-
-``response_cache_for``
- A value in seconds which will influence ``Cache-Control`` and ``Expires``
- headers in the returned response. The same can also be achieved by
- returning various values in the ``response_headerlist``, this is purely a
- convenience.
-
.. _adding_and_overriding_renderers:
Adding and Changing Renderers
View
20 pyramid/renderers.py
@@ -576,26 +576,6 @@ def _make_response(self, result, request):
else:
response.body = result
- if request is not None:
- # deprecated mechanism to set up request.response_* attrs, see
- # pyramid.request.Request
- attrs = request.__dict__
- content_type = attrs.get('_response_content_type', None)
- if content_type is not None:
- response.content_type = content_type
- headerlist = attrs.get('_response_headerlist', None)
- if headerlist is not None:
- for k, v in headerlist:
- response.headers.add(k, v)
- status = attrs.get('_response_status', None)
- if status is not None:
- response.status = status
- charset = attrs.get('_response_charset', None)
- if charset is not None:
- response.charset = charset
- cache_for = attrs.get('_response_cache_for', None)
- if cache_for is not None:
- response.cache_expires = cache_for
return response
def clone(self, name=None, package=None, registry=None):
View
82 pyramid/request.py
@@ -111,88 +111,6 @@ def update(self, v, **kw):
def values(self):
return self.environ.values()
- # 1.0 deprecated bw compat code for using response_* values
-
- rr_dep = ('Accessing and setting "request.response_%s" is '
- 'deprecated as of Pyramid 1.1; access or set '
- '"request.response.%s" instead.')
-
- # response_content_type
- def _response_content_type_get(self):
- return self._response_content_type
- def _response_content_type_set(self, value):
- self._response_content_type = value
- def _response_content_type_del(self):
- del self._response_content_type
- response_content_type = property(_response_content_type_get,
- _response_content_type_set,
- _response_content_type_del)
- response_content_type = deprecated(
- response_content_type,
- rr_dep % ('content_type', 'content_type'))
-
- # response_headerlist
- def _response_headerlist_get(self):
- return self._response_headerlist
- def _response_headerlist_set(self, value):
- self._response_headerlist = value
- def _response_headerlist_del(self):
- del self._response_headerlist
- response_headerlist = property(_response_headerlist_get,
- _response_headerlist_set,
- _response_headerlist_del)
-
- hl_dep = ('Accessing and setting "request.response_headerlist" is '
- 'deprecated as of Pyramid 1.1; access the headerlist via '
- '"request.response.headerlist" and extend headers via '
- '"request.response.headerlist.extend(alist)" instead of '
- '"request.response_headerlist = alist"')
-
- response_headerlist = deprecated(response_headerlist, hl_dep)
-
- # response_status
- def _response_status_get(self):
- return self._response_status
- def _response_status_set(self, value):
- self._response_status = value
- def _response_status_del(self):
- del self._response_status
- response_status = property(_response_status_get,
- _response_status_set,
- _response_status_del)
-
- response_status = deprecated(
- response_status,
- rr_dep % ('status', 'status'))
-
- # response_charset
- def _response_charset_get(self):
- return self._response_charset
- def _response_charset_set(self, value):
- self._response_charset = value
- def _response_charset_del(self):
- del self._response_charset
- response_charset = property(_response_charset_get,
- _response_charset_set,
- _response_charset_del)
- response_charset = deprecated(
- response_charset,
- rr_dep % ('charset', 'charset'))
-
- # response_cache_for
- def _response_cache_for_get(self):
- return self._response_cache_for
- def _response_cache_for_set(self, value):
- self._response_cache_for = value
- def _response_cache_for_del(self):
- del self._response_cache_for
- response_cache_for = property(_response_cache_for_get,
- _response_cache_for_set,
- _response_cache_for_del)
- response_cache_for = deprecated(
- response_cache_for,
- rr_dep % ('cache_for', 'cache_expires'))
-
class CallbackMethodsMixin(object):
response_callbacks = ()
finished_callbacks = ()
View
57 pyramid/tests/test_renderers.py
@@ -680,63 +680,6 @@ def test__make_response_result_is_None_existing_body_not_molested(self):
helper = self._makeOne('loo.foo')
response = helper._make_response(None, request)
self.assertEqual(response.body, b'abc')
-
- def test__make_response_with_content_type(self):
- from pyramid.response import Response
- request = testing.DummyRequest()
- request.response = Response()
- attrs = {'_response_content_type':'text/nonsense'}
- request.__dict__.update(attrs)
- helper = self._makeOne('loo.foo')
- response = helper._make_response('abc', request)
- self.assertEqual(response.content_type, 'text/nonsense')
- self.assertEqual(response.body, b'abc')
-
- def test__make_response_with_headerlist(self):
- from pyramid.response import Response
- request = testing.DummyRequest()
- request.response = Response()
- attrs = {'_response_headerlist':[('a', '1'), ('b', '2')]}
- request.__dict__.update(attrs)
- helper = self._makeOne('loo.foo')
- response = helper._make_response('abc', request)
- self.assertEqual(response.headerlist,
- [('Content-Type', 'text/html; charset=UTF-8'),
- ('Content-Length', '3'),
- ('a', '1'),
- ('b', '2')])
- self.assertEqual(response.body, b'abc')
-
- def test__make_response_with_status(self):
- from pyramid.response import Response
- request = testing.DummyRequest()
- request.response = Response()
- attrs = {'_response_status':'406 You Lose'}
- request.__dict__.update(attrs)
- helper = self._makeOne('loo.foo')
- response = helper._make_response('abc', request)
- self.assertEqual(response.status, '406 You Lose')
- self.assertEqual(response.body, b'abc')
-
- def test__make_response_with_charset(self):
- from pyramid.response import Response
- request = testing.DummyRequest()
- request.response = Response()
- attrs = {'_response_charset':'UTF-16'}
- request.__dict__.update(attrs)
- helper = self._makeOne('loo.foo')
- response = helper._make_response('abc', request)
- self.assertEqual(response.charset, 'UTF-16')
-
- def test__make_response_with_cache_for(self):
- from pyramid.response import Response
- request = testing.DummyRequest()
- request.response = Response()
- attrs = {'_response_cache_for':100}
- request.__dict__.update(attrs)
- helper = self._makeOne('loo.foo')
- response = helper._make_response('abc', request)
- self.assertEqual(response.cache_control.max_age, 100)
def test_with_alternate_response_factory(self):
from pyramid.interfaces import IResponseFactory

0 comments on commit f6f1d16

Please sign in to comment.