Ticket #14103: django_utils_cache_honor_use_etags_plus_test.diff

File django_utils_cache_honor_use_etags_plus_test.diff, 1.9 KB (added by trbs, 14 years ago)
  • django/utils/cache.py

     
    101101        cache_timeout = settings.CACHE_MIDDLEWARE_SECONDS
    102102    if cache_timeout < 0:
    103103        cache_timeout = 0 # Can't have max-age negative
    104     if not response.has_header('ETag'):
     104    if settings.USE_ETAGS and not response.has_header('ETag'):
    105105        response['ETag'] = '"%s"' % md5_constructor(response.content).hexdigest()
    106106    if not response.has_header('Last-Modified'):
    107107        response['Last-Modified'] = http_date()
  • tests/regressiontests/cache/tests.py

     
    545545        settings.CACHE_MIDDLEWARE_SECONDS = 60
    546546        settings.CACHE_MIDDLEWARE_KEY_PREFIX="test"
    547547        settings.CACHE_BACKEND='locmem:///'
     548        settings.USE_ETAGS = True
    548549        settings.USE_I18N = True
    549550        en_message ="Hello world!"
    550551        es_message ="Hola mundo!"
     
    555556        # Check that we can recover the cache
    556557        self.assertNotEqual(get_cache_data.content, None)
    557558        self.assertEqual(en_message, get_cache_data.content)
     559        # Check that we use etags
     560        self.assertTrue(get_cache_data.has_header('ETag'))
     561        # Check that we can disable etags
     562        settings.USE_ETAGS = False
     563        request._cache_update_cache = True
     564        set_cache(request, 'en', en_message)
     565        get_cache_data = FetchFromCacheMiddleware().process_request(request)
     566        self.assertFalse(get_cache_data.has_header('ETag'))
    558567        # change the session language and set content
    559568        request = self._get_request_cache()
    560569        set_cache(request, 'es', es_message)
Back to Top