def test_invalidate_cache(self): response = self.client.get('/test/') key = custom_caching.generate_cache_key('/test/', ['anon']) filecache = cache.get_cache('filecache') cached = filecache.get(key) custom_caching.invalidate_filecache(key) no_more_cache = filecache.get(key) self.assertTrue(cached) self.assertFalse(no_more_cache)
def test_versioning(self): username = '******' password = '******' email = '*****@*****.**' self.staff_user = User.objects.create_superuser( username=username, email=email, password=password) is_authenticated = self.staff_client.login(username=username, password=password) self.assertTrue(is_authenticated) filecache = cache.get_cache('filecache') # Make initial requests to create caches anon_response = self.client.get('/test/') staff_response = self.staff_client.get('/test/') self.assertNotEqual(anon_response, staff_response) # Verify caches were created anon_key = custom_caching.generate_cache_key('/test/', ['anon']) staff_key = custom_caching.generate_cache_key('/test/', ['staff']) anon_cached = filecache.get(anon_key) staff_cached = filecache.get(staff_key) self.assertTrue(anon_cached) self.assertTrue(staff_cached) # Verify they are not identical versions self.assertNotEqual(anon_cached, staff_cached) # Verify that the served cached versions on subsequent requests also vary anon_cached_response = self.client.get('/test/') staff_cached_response = self.staff_client.get('/test/') self.assertNotEqual(anon_cached_response, staff_cached_response) # Finally, verify both caches can be invalidated custom_caching.invalidate_filecache(anon_key) custom_caching.invalidate_filecache(staff_key) no_more_anon_cache = filecache.get(anon_key) no_more_staff_cache = filecache.get(staff_key) self.assertFalse(no_more_anon_cache) self.assertFalse(no_more_staff_cache)