summaryrefslogtreecommitdiff
path: root/tests/file_storage
diff options
context:
space:
mode:
authorSarah Boyce <42296566+sarahboyce@users.noreply.github.com>2024-08-05 21:36:49 +0200
committerGitHub <noreply@github.com>2024-08-05 16:36:49 -0300
commit8deb6bb1fc427762d56646bf7306cbd11fb5bb68 (patch)
tree563f85226d726bda252a089ea6f0f42199beaf62 /tests/file_storage
parente9e14709ffaefaf90c1b49e3d5a1c79b481df52a (diff)
Fixed #35657 -- Made FileField handle db_default values.
Diffstat (limited to 'tests/file_storage')
-rw-r--r--tests/file_storage/models.py3
-rw-r--r--tests/file_storage/tests.py14
2 files changed, 17 insertions, 0 deletions
diff --git a/tests/file_storage/models.py b/tests/file_storage/models.py
index 873c3e176a..cb0207cae9 100644
--- a/tests/file_storage/models.py
+++ b/tests/file_storage/models.py
@@ -72,6 +72,9 @@ class Storage(models.Model):
default = models.FileField(
storage=temp_storage, upload_to="tests", default="tests/default.txt"
)
+ db_default = models.FileField(
+ storage=temp_storage, upload_to="tests", db_default="tests/db_default.txt"
+ )
empty = models.FileField(storage=temp_storage)
limited_length = models.FileField(
storage=temp_storage, upload_to="tests", max_length=20
diff --git a/tests/file_storage/tests.py b/tests/file_storage/tests.py
index 868b18dd2c..c7ca873521 100644
--- a/tests/file_storage/tests.py
+++ b/tests/file_storage/tests.py
@@ -944,6 +944,20 @@ class FileFieldStorageTests(TestCase):
self.assertEqual(obj.default.read(), b"default content")
obj.default.close()
+ def test_filefield_db_default(self):
+ temp_storage.save("tests/db_default.txt", ContentFile("default content"))
+ obj = Storage.objects.create()
+ self.assertEqual(obj.db_default.name, "tests/db_default.txt")
+ self.assertEqual(obj.db_default.read(), b"default content")
+ obj.db_default.close()
+
+ # File is not deleted, even if there are no more objects using it.
+ obj.delete()
+ s = Storage()
+ self.assertEqual(s.db_default.name, "tests/db_default.txt")
+ self.assertEqual(s.db_default.read(), b"default content")
+ s.db_default.close()
+
def test_empty_upload_to(self):
# upload_to can be empty, meaning it does not use subdirectory.
obj = Storage()