diff --git a/demo/demoproject/storage/tests.py b/demo/demoproject/storage/tests.py index 1924f48..8536781 100644 --- a/demo/demoproject/storage/tests.py +++ b/demo/demoproject/storage/tests.py @@ -1,7 +1,9 @@ +import datetime import unittest from django.core.files.base import ContentFile from django.core.urlresolvers import reverse +from django.http.response import HttpResponseNotModified import django.test from django_downloadview import assert_download_response, temporary_media_root @@ -31,6 +33,32 @@ class StaticPathTestCase(django.test.TestCase): basename='1.txt', mime_type='text/plain') + @temporary_media_root() + def test_not_modified_download_response(self): + """'storage:static_path' sends not modified response if unmodified.""" + setup_file('1.txt') + url = reverse('storage:static_path', kwargs={'path': '1.txt'}) + response = self.client.get( + url, + HTTP_IF_MODIFIED_SINCE='Sat, 29 Oct {year} 19:43:31 GMT'.format( + year=datetime.date.today().year + 4) + ) + self.assertTrue(isinstance(response, HttpResponseNotModified)) + + @temporary_media_root() + def test_modified_since_download_response(self): + """'storage:static_path' streams file if modified.""" + setup_file('1.txt') + url = reverse('storage:static_path', kwargs={'path': '1.txt'}) + response = self.client.get( + url, + HTTP_IF_MODIFIED_SINCE='Sat, 29 Oct 1980 19:43:31 GMT') + assert_download_response(self, + response, + content=file_content, + basename='1.txt', + mime_type='text/plain') + class DynamicPathIntegrationTestCase(django.test.TestCase): """Integration tests around ``storage:dynamic_path`` URL."""