From 8deb6bb1fc427762d56646bf7306cbd11fb5bb68 Mon Sep 17 00:00:00 2001 From: Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> Date: Mon, 5 Aug 2024 21:36:49 +0200 Subject: Fixed #35657 -- Made FileField handle db_default values. --- tests/file_storage/models.py | 3 +++ tests/file_storage/tests.py | 14 ++++++++++++++ 2 files changed, 17 insertions(+) (limited to 'tests') 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() -- cgit v1.3