diff --git a/storages/backends/dropbox.py b/storages/backends/dropbox.py index e520b3886..defcc1a42 100644 --- a/storages/backends/dropbox.py +++ b/storages/backends/dropbox.py @@ -108,5 +108,7 @@ def _open(self, name, mode='rb'): return remote_file def _save(self, name, content): - self.client.files_upload(content, self._full_path(name)) + content.open() + self.client.files_upload(content.read(), self._full_path(name)) + content.close() return name diff --git a/tests/test_dropbox.py b/tests/test_dropbox.py index 342a7d042..4fa998617 100644 --- a/tests/test_dropbox.py +++ b/tests/test_dropbox.py @@ -5,6 +5,7 @@ ) from django.core.files.base import ContentFile, File from django.test import TestCase +from django.utils.six import BytesIO from storages.backends import dropbox @@ -118,8 +119,9 @@ def test_open(self, *args): @mock.patch('dropbox.Dropbox.files_upload', return_value='foo') - def test_save(self, *args): - self.storage._save('foo', b'bar') + def test_save(self, files_upload, *args): + self.storage._save('foo', File(BytesIO(b'bar'), 'foo')) + self.assertTrue(files_upload.called) @mock.patch('dropbox.Dropbox.files_get_temporary_link', return_value=FILE_MEDIA_FIXTURE)