def test_document_download_event_with_permissions(self): self.login( username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD ) Action.objects.all().delete() self.role.permissions.add( permission_document_download.stored_permission ) self.expected_content_type = 'image/png; charset=utf-8' response = self.get( viewname='documents:document_download', args=(self.document.pk,), ) # Download the file to close the file descriptor with self.document.open() as file_object: assert_download_response( self, response, content=file_object.read(), mime_type=self.document.file_mimetype ) event = Action.objects.any(obj=self.document).first() self.assertEqual(event.verb, event_document_download.id) self.assertEqual(event.target, self.document) self.assertEqual(event.actor, self.user)
def test_document_download_event_with_permissions(self): self.login( username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD ) Action.objects.all().delete() self.role.permissions.add( permission_document_download.stored_permission ) self.expected_content_type = 'image/png; charset=utf-8' response = self.get( 'documents:document_download', args=(self.document.pk,), ) # Download the file to close the file descriptor with self.document.open() as file_object: assert_download_response( self, response, content=file_object.read(), mime_type=self.document.file_mimetype ) event = Action.objects.any(obj=self.document).first() self.assertEqual(event.verb, event_document_download.id) self.assertEqual(event.target, self.document) self.assertEqual(event.actor, self.user)
def test_download_response(self): """HTTPDownloadView proxies Content-Type header.""" url = reverse('http:avatar_url') response = self.client.get(url) assert_download_response(self, response, mime_type='image/png')
def test_download_response(self): """'virtual:text' serves 'hello-world.txt' from unicode.""" url = reverse('virtual:text') response = self.client.get(url) assert_download_response(self, response, content='Hello world!\n', basename='hello-world.txt', mime_type='text/plain')
def test_download_response(self): """'simple_url' serves 'hello-world.txt' from Github.""" url = reverse('http:simple_url') response = self.client.get(url) assert_download_response(self, response, content='Hello world!\n', basename='hello-world.txt', mime_type='text/plain')
def test_download_response(self): """'dynamic_path' serves 'fixtures/{path}'.""" url = reverse('path:dynamic_path', kwargs={'path': 'hello-world.txt'}) response = self.client.get(url) assert_download_response(self, response, content='Hello world!\n', basename='hello-world.txt', mime_type='text/plain')
def test_download_response(self): """'static_path' serves 'fixtures/hello-world.txt'.""" url = reverse('path:static_path') response = self.client.get(url) assert_download_response(self, response, content='Hello world!\n', basename='hello-world.txt', mime_type='text/plain')
def test_download_response(self): """'another_file' streams Document.another_file.""" setup_document() url = reverse('object:another_file', kwargs={'slug': slug}) response = self.client.get(url) assert_download_response(self, response, content=another_content, basename=another_name, mime_type='text/plain')
def test_download_response(self): "'inline_file_view' streams Document.file inline." setup_document() url = reverse('object:inline_file', kwargs={'slug': slug}) response = self.client.get(url) assert_download_response(self, response, content=file_content, mime_type='text/plain', attachment=False)
def test_download_response(self): """'storage:static_path' streams file by path.""" setup_file('1.txt') url = reverse('storage:static_path', kwargs={'path': '1.txt'}) response = self.client.get(url) assert_download_response(self, response, content=file_content, basename='1.txt', mime_type='text/plain')
def test_download_response(self): "'deserialized_basename' streams Document.file with custom basename." setup_document() url = reverse('object:deserialized_basename', kwargs={'slug': slug}) response = self.client.get(url) assert_download_response(self, response, content=file_content, basename=basename, mime_type='text/plain')
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')
def test_download_response(self): """'simple_url' serves 'hello-world.txt' from Github.""" url = reverse("http:simple_url") response = self.client.get(url) assert_download_response( self, response, content="Hello world!\n", basename="hello-world.txt", mime_type="text/plain", )
def test_download_response(self): """'virtual:generated' serves 'hello-world.txt' from generator.""" url = reverse("virtual:generated") response = self.client.get(url) assert_download_response( self, response, content="Hello world!\n", basename="hello-world.txt", mime_type="text/plain", )
def test_download_response(self): """'static_path' serves 'fixtures/hello-world.txt'.""" url = reverse("path:static_path") response = self.client.get(url) assert_download_response( self, response, content="Hello world!\n", basename="hello-world.txt", mime_type="text/plain", )
def test_download_response(self): """'dynamic_path' serves 'fixtures/{path}'.""" url = reverse("path:dynamic_path", kwargs={"path": "hello-world.txt"}) response = self.client.get(url) assert_download_response( self, response, content="Hello world!\n", basename="hello-world.txt", mime_type="text/plain", )
def test_download_response(self): """'default_file' streams Document.file.""" setup_document() url = reverse("object:default_file", kwargs={"slug": slug}) response = self.client.get(url) assert_download_response( self, response, content=file_content, basename=file_name, mime_type="text/plain", )
def test_download_response(self): """'storage:static_path' streams file by path.""" setup_file("1.txt") url = reverse("storage:static_path", kwargs={"path": "1.txt"}) response = self.client.get(url) assert_download_response( self, response, content=file_content, basename="1.txt", mime_type="text/plain", )
def test_document_download(self): document = self._create_document() response = self.client.get( reverse('rest_api:document-download', args=(document.pk, ))) with document.open() as file_object: assert_download_response(self, response, content=file_object.read(), basename=TEST_SMALL_DOCUMENT_FILENAME, mime_type='{}; charset=utf-8'.format( document.file_mimetype))
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", )
def test_document_download_with_access(self): self.document = self.upload_document() self.grant_access(permission=permission_document_download, obj=self.document) response = self._request_document_download() self.assertEqual(response.status_code, status.HTTP_200_OK) with self.document.open() as file_object: assert_download_response(self, response, content=file_object.read(), basename=TEST_SMALL_DOCUMENT_FILENAME, mime_type='{}; charset=utf-8'.format( self.document.file_mimetype))
def test_document_download(self): document = self._create_document() response = self.client.get( reverse( 'rest_api:document-download', args=(document.pk,) ) ) with document.open() as file_object: assert_download_response( self, response, content=file_object.read(), basename=TEST_SMALL_DOCUMENT_FILENAME, mime_type='{}; charset=utf-8'.format(document.file_mimetype) )
def test_document_version_download_with_access(self): self.upload_document() self.grant_access(obj=self.test_document, permission=permission_document_download) response = self._request_document_version_download() self.assertEqual(response.status_code, status.HTTP_200_OK) with self.test_document.latest_version.open() as file_object: assert_download_response(self, response, content=file_object.read(), basename=force_text( self.test_document.latest_version), mime_type='{}; charset=utf-8'.format( self.test_document.file_mimetype))
def test_document_version_download_with_access(self): self.document = self.upload_document() self.grant_access( permission=permission_document_download, obj=self.document ) response = self._request_document_version_download() self.assertEqual(response.status_code, status.HTTP_200_OK) with self.document.latest_version.open() as file_object: assert_download_response( self, response, content=file_object.read(), basename=force_text(self.document.latest_version), mime_type='{}; charset=utf-8'.format( self.document.file_mimetype ) )
def test_document_version_download(self): document = self._create_document() latest_version = document.latest_version response = self.client.get( reverse( 'rest_api:documentversion-download', args=(document.pk, latest_version.pk,) ) ) with latest_version.open() as file_object: assert_download_response( self, response, content=file_object.read(), basename=force_text(latest_version), mime_type='{}; charset=utf-8'.format(document.file_mimetype) )
def test_document_version_download(self): document = self._create_document() latest_version = document.latest_version response = self.client.get( reverse('rest_api:documentversion-download', args=( document.pk, latest_version.pk, ))) with latest_version.open() as file_object: assert_download_response(self, response, content=file_object.read(), basename=force_text(latest_version), mime_type='{}; charset=utf-8'.format( document.file_mimetype))
def test_document_multiple_download_view_with_permission(self): # Set the expected_content_type for # common.tests.mixins.ContentTypeCheckMixin self.expected_content_type = '{}; charset=utf-8'.format( self.document.file_mimetype) self.grant(permission=permission_document_download) response = self.get('documents:document_multiple_download', data={'id_list': self.document.pk}) self.assertEqual(response.status_code, 200) with self.document.open() as file_object: assert_download_response(self, response, content=file_object.read(), basename=TEST_SMALL_DOCUMENT_FILENAME, mime_type=self.document.file_mimetype)
def test_document_version_download_preserve_extension(self): document = self._create_document() latest_version = document.latest_version response = self.client.get(reverse('rest_api:documentversion-download', args=( document.pk, latest_version.pk, )), data={'preserve_extension': True}) with latest_version.open() as file_object: assert_download_response( self, response, content=file_object.read(), basename=latest_version.get_rendered_string( preserve_extension=True), mime_type='{}; charset=utf-8'.format(document.file_mimetype))
def test_download_response(self): """'dynamic_path' streams file by generated path. As we use ``self.client``, this test involves the whole Django stack, including settings, middlewares, decorators... So we need to setup a file, the storage, and an URL. This test actually asserts the URL ``storage:dynamic_path`` streams a file in storage. """ setup_file('1.TXT') url = reverse('storage:dynamic_path', kwargs={'path': '1.txt'}) response = self.client.get(url) assert_download_response(self, response, content=file_content, basename='1.TXT', mime_type='text/plain')
def test_document_version_download_preserve_extension(self): self.login_admin_user() self.document = self.upload_document() response = self.get( viewname='rest_api:documentversion-download', args=( self.document.pk, self.document.latest_version.pk, ), data={'preserve_extension': True} ) with self.document.latest_version.open() as file_object: assert_download_response( self, response, content=file_object.read(), basename=self.document.latest_version.get_rendered_string( preserve_extension=True ), mime_type='{}; charset=utf-8'.format( self.document.file_mimetype ) )
def test_document_version_download_view_with_permission(self): # Set the expected_content_type for # common.tests.mixins.ContentTypeCheckMixin self.expected_content_type = 'application/octet-stream; charset=utf-8' self.grant(permission=permission_document_download) response = self.get('documents:document_version_download', args=(self.document.latest_version.pk, )) self.assertEqual(response.status_code, 200) with self.document.open() as file_object: assert_download_response( self, response, content=file_object.read(), basename='{} - {}'.format( TEST_SMALL_DOCUMENT_FILENAME, self.document.latest_version.timestamp), mime_type='application/octet-stream; charset=utf-8')
def test_document_version_download_preserve_extension(self): document = self._create_document() latest_version = document.latest_version response = self.client.get( reverse( 'rest_api:documentversion-download', args=(document.pk, latest_version.pk,) ), data={'preserve_extension': True} ) with latest_version.open() as file_object: assert_download_response( self, response, content=file_object.read(), basename=latest_version.get_rendered_string( preserve_extension=True ), mime_type='{}; charset=utf-8'.format( document.file_mimetype ) )
def test_document_version_download_preserve_extension(self): self.login_admin_user() self.document = self.upload_document() response = self.get(viewname='rest_api:documentversion-download', args=( self.document.pk, self.document.latest_version.pk, ), data={'preserve_extension': True}) with self.document.latest_version.open() as file_object: assert_download_response( self, response, content=file_object.read(), basename=self.document.latest_version.get_rendered_string( preserve_extension=True), mime_type='{}; charset=utf-8'.format( self.document.file_mimetype))
def test_document_download_event_with_access(self): self.expected_content_types = ('image/png; charset=utf-8', ) self.grant_access(obj=self.test_document, permission=permission_document_download) response = self._request_test_document_download_view() # Download the file to close the file descriptor with self.test_document.open() as file_object: assert_download_response( self, response, content=file_object.read(), mime_type=self.test_document.file_mimetype) event = Action.objects.any(obj=self.test_document).first() self.assertEqual(event.actor, self._test_case_user) self.assertEqual(event.target, self.test_document) self.assertEqual(event.verb, event_document_download.id)
def test_document_version_download(self): with open(TEST_SMALL_DOCUMENT_PATH) as file_object: document = self.document_type.new_document( file_object=file_object, ) latest_version = document.latest_version response = self.client.get( reverse('rest_api:documentversion-download', args=( document.pk, latest_version.pk, ))) with latest_version.open() as file_object: assert_download_response( self, response, content=file_object.read(), basename='{} - {}'.format(TEST_SMALL_DOCUMENT_FILENAME, latest_version.timestamp), mime_type='application/octet-stream; charset=utf-8')
def test_document_version_download_preserve_extension(self): self.upload_document() self.grant_access(obj=self.test_document, permission=permission_document_download) response = self.get(viewname='rest_api:documentversion-download', kwargs={ 'pk': self.test_document.pk, 'version_pk': self.test_document.latest_version.pk, }, data={'preserve_extension': True}) with self.test_document.latest_version.open() as file_object: assert_download_response( self, response, content=file_object.read(), basename=self.test_document.latest_version.get_rendered_string( preserve_extension=True), mime_type='{}; charset=utf-8'.format( self.test_document.file_mimetype))
def test_download_response(self): "'inline_file_view' streams Document.file inline." setup_document() url = reverse("object:inline_file", kwargs={"slug": slug}) response = self.client.get(url) assert_download_response(self, response, content=file_content, mime_type="text/plain", attachment=False)
def test_download_response(self): """HTTPDownloadView proxies Content-Type header.""" url = reverse("http:avatar_url") response = self.client.get(url) assert_download_response(self, response, mime_type="image/png")
def test_download_response(self): """'default_file' streams Document.file.""" setup_document() url = reverse("object:default_file", kwargs={"slug": slug}) response = self.client.get(url) assert_download_response(self, response, content=file_content, basename=file_name, mime_type="text/plain")