|
@@ -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):
|