Fixed #25900 -- Fixed regression in CommonMiddleware ETag support.
This commit is contained in:
parent
5bc881541c
commit
6be9589eb3
|
@ -120,7 +120,9 @@ class CommonMiddleware(object):
|
||||||
if response.has_header('ETag'):
|
if response.has_header('ETag'):
|
||||||
return get_conditional_response(
|
return get_conditional_response(
|
||||||
request,
|
request,
|
||||||
etag=response['ETag'],
|
# get_conditional_response() requires an unquoted version
|
||||||
|
# of the response's ETag.
|
||||||
|
etag=response['ETag'].strip('"'),
|
||||||
response=response,
|
response=response,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -19,3 +19,6 @@ Bugfixes
|
||||||
|
|
||||||
* Fixed a state bug when migrating a ``SeparateDatabaseAndState`` operation
|
* Fixed a state bug when migrating a ``SeparateDatabaseAndState`` operation
|
||||||
backwards (:ticket:`25896`).
|
backwards (:ticket:`25896`).
|
||||||
|
|
||||||
|
* Fixed a regression in ``CommonMiddleware`` causing ``If-None-Match`` checks
|
||||||
|
to always return HTTP 200 (:ticket:`25900`).
|
||||||
|
|
|
@ -291,6 +291,16 @@ class CommonMiddlewareTest(SimpleTestCase):
|
||||||
res = StreamingHttpResponse(['content'])
|
res = StreamingHttpResponse(['content'])
|
||||||
self.assertFalse(CommonMiddleware().process_response(req, res).has_header('ETag'))
|
self.assertFalse(CommonMiddleware().process_response(req, res).has_header('ETag'))
|
||||||
|
|
||||||
|
@override_settings(USE_ETAGS=True)
|
||||||
|
def test_if_none_match(self):
|
||||||
|
first_req = HttpRequest()
|
||||||
|
first_res = CommonMiddleware().process_response(first_req, HttpResponse('content'))
|
||||||
|
second_req = HttpRequest()
|
||||||
|
second_req.method = 'GET'
|
||||||
|
second_req.META['HTTP_IF_NONE_MATCH'] = first_res['ETag']
|
||||||
|
second_res = CommonMiddleware().process_response(second_req, HttpResponse('content'))
|
||||||
|
self.assertEqual(second_res.status_code, 304)
|
||||||
|
|
||||||
# Other tests
|
# Other tests
|
||||||
|
|
||||||
@override_settings(DISALLOWED_USER_AGENTS=[re.compile(r'foo')])
|
@override_settings(DISALLOWED_USER_AGENTS=[re.compile(r'foo')])
|
||||||
|
|
Loading…
Reference in New Issue