summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMaxim Novikov <nes8bit@yandex-team.ru>2016-04-13 10:38:56 +0500
committerTim Graham <timograham@gmail.com>2016-04-21 10:40:48 -0400
commit4d1c229ee5cb210e8b592a8d9c87d4a66864328e (patch)
tree06a2bcb192318a8a651bac9f7be7d63d0358a9de /tests
parent65006e0b0b5deb2e45c35975b103f0bb041c1e5c (diff)
Fixed #26495 -- Added name arg to Storage.save()'s File wrapping.
Diffstat (limited to 'tests')
-rw-r--r--tests/file_storage/tests.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/file_storage/tests.py b/tests/file_storage/tests.py
index d1ea0021c5..42699dddb8 100644
--- a/tests/file_storage/tests.py
+++ b/tests/file_storage/tests.py
@@ -644,6 +644,29 @@ class CustomStorageLegacyDatetimeHandlingTests(FileStorageTests):
storage_class = CustomStorageLegacyDatetimeHandling
+class DiscardingFalseContentStorage(FileSystemStorage):
+ def _save(self, name, content):
+ if content:
+ return super(DiscardingFalseContentStorage, self)._save(name, content)
+ return ''
+
+
+class DiscardingFalseContentStorageTests(FileStorageTests):
+ storage_class = DiscardingFalseContentStorage
+
+ def test_custom_storage_discarding_empty_content(self):
+ """
+ When Storage.save() wraps a file-like object in File, it should include
+ the name argument so that bool(file) evaluates to True (#26495).
+ """
+ output = six.StringIO('content')
+ self.storage.save('tests/stringio', output)
+ self.assertTrue(self.storage.exists('tests/stringio'))
+
+ with self.storage.open('tests/stringio') as f:
+ self.assertEqual(f.read(), b'content')
+
+
class FileFieldStorageTests(TestCase):
def tearDown(self):
shutil.rmtree(temp_storage_location)