Fixed #22337: FileSystemStorage marked as deconstructible and tested.

This commit is contained in:
Andrew Godwin 2014-05-06 22:23:23 -07:00
parent 61da5f3f02
commit 6944418277
3 changed files with 21 additions and 0 deletions

View File

@ -13,6 +13,7 @@ from django.utils.module_loading import import_string
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 @@ class Storage(object):
raise NotImplementedError('subclasses of Storage must provide a modified_time() method')
@deconstructible
class FileSystemStorage(Storage):
"""
Standard filesystem storage

View File

@ -3,6 +3,7 @@ import warnings
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 @@ class FieldDeconstructionTests(TestCase):
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 File

@ -64,6 +64,23 @@ class GetStorageClassTests(SimpleTestCase):
'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