Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

[1.7.x] Fixed #22337: FileSystemStorage marked as deconstructible and…

… tested.
  • Loading branch information...
commit f53d1576caab1594b29f6215604ef23ab6e5745e 1 parent a75318e
@andrewgodwin andrewgodwin authored
View
2  django/core/files/storage.py
@@ -13,6 +13,7 @@
from django.utils.six.moves.urllib.parse import urljoin
from django.utils.text import get_valid_filename
from django.utils._os import safe_join, abspathu
+from django.utils.deconstruct import deconstructible
__all__ = ('Storage', 'FileSystemStorage', 'DefaultStorage', 'default_storage')
@@ -144,6 +145,7 @@ def modified_time(self, name):
raise NotImplementedError('subclasses of Storage must provide a modified_time() method')
+@deconstructible
class FileSystemStorage(Storage):
"""
Standard filesystem storage
View
2  tests/field_deconstruction/tests.py
@@ -3,6 +3,7 @@
from django.db import models
from django.test import TestCase, override_settings
from django.utils import six
+from django.core.files.storage import FileSystemStorage
class FieldDeconstructionTests(TestCase):
@@ -141,6 +142,7 @@ def test_file_field(self):
self.assertEqual(path, "django.db.models.FileField")
self.assertEqual(args, [])
self.assertEqual(kwargs, {"upload_to": "foo/bar"})
+ # Test max_length
field = models.FileField(upload_to="foo/bar", max_length=200)
name, path, args, kwargs = field.deconstruct()
self.assertEqual(path, "django.db.models.FileField")
View
17 tests/file_storage/tests.py
@@ -64,6 +64,23 @@ def test_get_nonexisting_storage_module(self):
'django.core.files.non_existing_storage.NonExistingStorage')
+class FileStorageDeconstructionTests(unittest.TestCase):
+
+ def test_deconstruction(self):
+ path, args, kwargs = temp_storage.deconstruct()
+ self.assertEqual(path, "django.core.files.storage.FileSystemStorage")
+ self.assertEqual(args, tuple())
+ self.assertEqual(kwargs, {'location': temp_storage_location})
+
+ kwargs_orig = {
+ 'location': temp_storage_location,
+ 'base_url': 'http://myfiles.example.com/'
+ }
+ storage = FileSystemStorage(**kwargs_orig)
+ path, args, kwargs = storage.deconstruct()
+ self.assertEqual(kwargs, kwargs_orig)
+
+
class FileStorageTests(unittest.TestCase):
storage_class = FileSystemStorage

0 comments on commit f53d157

Please sign in to comment.
Something went wrong with that request. Please try again.