Fixed #19262 -- Support cookie pickling in SimpleTemplateResponse
Refs #15863.
This commit is contained in:
parent
1b307d6c8f
commit
4d817b3887
|
@ -40,7 +40,7 @@ class SimpleTemplateResponse(HttpResponse):
|
||||||
rendered, and that the pickled state only includes rendered
|
rendered, and that the pickled state only includes rendered
|
||||||
data, not the data used to construct the response.
|
data, not the data used to construct the response.
|
||||||
"""
|
"""
|
||||||
obj_dict = self.__dict__.copy()
|
obj_dict = super(SimpleTemplateResponse, self).__getstate__()
|
||||||
if not self._is_rendered:
|
if not self._is_rendered:
|
||||||
raise ContentNotRenderedError('The response content must be '
|
raise ContentNotRenderedError('The response content must be '
|
||||||
'rendered before it can be pickled.')
|
'rendered before it can be pickled.')
|
||||||
|
|
|
@ -189,6 +189,21 @@ class SimpleTemplateResponseTest(TestCase):
|
||||||
unpickled_response = pickle.loads(pickled_response)
|
unpickled_response = pickle.loads(pickled_response)
|
||||||
repickled_response = pickle.dumps(unpickled_response)
|
repickled_response = pickle.dumps(unpickled_response)
|
||||||
|
|
||||||
|
def test_pickling_cookie(self):
|
||||||
|
response = SimpleTemplateResponse('first/test.html', {
|
||||||
|
'value': 123,
|
||||||
|
'fn': datetime.now,
|
||||||
|
})
|
||||||
|
|
||||||
|
response.cookies['key'] = 'value'
|
||||||
|
|
||||||
|
response.render()
|
||||||
|
pickled_response = pickle.dumps(response, pickle.HIGHEST_PROTOCOL)
|
||||||
|
unpickled_response = pickle.loads(pickled_response)
|
||||||
|
|
||||||
|
self.assertEqual(unpickled_response.cookies['key'].value, 'value')
|
||||||
|
|
||||||
|
|
||||||
@override_settings(
|
@override_settings(
|
||||||
TEMPLATE_CONTEXT_PROCESSORS=[test_processor_name],
|
TEMPLATE_CONTEXT_PROCESSORS=[test_processor_name],
|
||||||
TEMPLATE_DIRS=(os.path.join(os.path.dirname(__file__),'templates')),
|
TEMPLATE_DIRS=(os.path.join(os.path.dirname(__file__),'templates')),
|
||||||
|
|
Loading…
Reference in New Issue