summaryrefslogtreecommitdiff
path: root/tests/file_storage/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/file_storage/tests.py')
-rw-r--r--tests/file_storage/tests.py30
1 files changed, 23 insertions, 7 deletions
diff --git a/tests/file_storage/tests.py b/tests/file_storage/tests.py
index 38d87dc7f2..868b18dd2c 100644
--- a/tests/file_storage/tests.py
+++ b/tests/file_storage/tests.py
@@ -95,18 +95,18 @@ class FileStorageTests(SimpleTestCase):
"""
Standard file access options are available, and work as expected.
"""
- self.assertFalse(os.path.exists(os.path.join(self.temp_dir, "storage_test")))
+ self.assertFalse(self.storage.exists("storage_test"))
f = self.storage.open("storage_test", "w")
f.write("storage contents")
f.close()
- self.assertTrue(os.path.exists(os.path.join(self.temp_dir, "storage_test")))
+ self.assertTrue(self.storage.exists("storage_test"))
f = self.storage.open("storage_test", "r")
self.assertEqual(f.read(), "storage contents")
f.close()
self.storage.delete("storage_test")
- self.assertFalse(os.path.exists(os.path.join(self.temp_dir, "storage_test")))
+ self.assertFalse(self.storage.exists("storage_test"))
def _test_file_time_getter(self, getter):
# Check for correct behavior under both USE_TZ=True and USE_TZ=False.
@@ -275,10 +275,10 @@ class FileStorageTests(SimpleTestCase):
"""
Saving a pathname should create intermediate directories as necessary.
"""
- self.assertFalse(os.path.exists(os.path.join(self.temp_dir, "path/to")))
+ self.assertFalse(self.storage.exists("path/to"))
self.storage.save("path/to/test.file", ContentFile("file saved with path"))
- self.assertTrue(os.path.exists(os.path.join(self.temp_dir, "path/to")))
+ self.assertTrue(self.storage.exists("path/to"))
with self.storage.open("path/to/test.file") as f:
self.assertEqual(f.read(), b"file saved with path")
@@ -692,12 +692,12 @@ class OverwritingStorageTests(FileStorageTests):
stored_name_1 = self.storage.save(name, f_1)
try:
self.assertEqual(stored_name_1, name)
- self.assertTrue(os.path.exists(os.path.join(self.temp_dir, name)))
+ self.assertTrue(self.storage.exists(name))
with self.storage.open(name) as fp:
self.assertEqual(fp.read(), content_1)
stored_name_2 = self.storage.save(name, f_2)
self.assertEqual(stored_name_2, name)
- self.assertTrue(os.path.exists(os.path.join(self.temp_dir, name)))
+ self.assertTrue(self.storage.exists(name))
with self.storage.open(name) as fp:
self.assertEqual(fp.read(), content_2)
finally:
@@ -729,6 +729,22 @@ class OverwritingStorageTests(FileStorageTests):
finally:
self.storage.delete(name)
+ def test_file_name_truncation(self):
+ name = "test_long_file_name.txt"
+ file = ContentFile(b"content")
+ stored_name = self.storage.save(name, file, max_length=10)
+ self.addCleanup(self.storage.delete, stored_name)
+ self.assertEqual(stored_name, "test_l.txt")
+ self.assertEqual(len(stored_name), 10)
+
+ def test_file_name_truncation_extension_too_long(self):
+ name = "file_name.longext"
+ file = ContentFile(b"content")
+ with self.assertRaisesMessage(
+ SuspiciousFileOperation, "Storage can not find an available filename"
+ ):
+ self.storage.save(name, file, max_length=5)
+
class DiscardingFalseContentStorage(FileSystemStorage):
def _save(self, name, content):