Fixed #30812 -- Made ConditionalGetMiddleware set ETag only for responses with non-empty content.

This commit is contained in:
Viktor Lomakin 2019-10-09 12:20:17 +03:00 committed by Mariusz Felisiak
parent 3cd3bebe89
commit ee6b17187f
3 changed files with 11 additions and 1 deletions

View file

@ -452,6 +452,12 @@ class ConditionalGetMiddlewareTest(SimpleTestCase):
res = StreamingHttpResponse(['content'])
self.assertFalse(ConditionalGetMiddleware().process_response(self.req, res).has_header('ETag'))
def test_no_etag_response_empty_content(self):
res = HttpResponse()
self.assertFalse(
ConditionalGetMiddleware().process_response(self.req, res).has_header('ETag')
)
def test_no_etag_no_store_cache(self):
self.resp['Cache-Control'] = 'No-Cache, No-Store, Max-age=0'
self.assertFalse(ConditionalGetMiddleware().process_response(self.req, self.resp).has_header('ETag'))