Moved Gzip enabled compressor storage backend from tests.storage to compressor.storage module.
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import gzip
|
||||
|
||||
from django.core.files.storage import FileSystemStorage, get_storage_class
|
||||
from django.utils.functional import LazyObject
|
||||
|
||||
@@ -19,6 +21,21 @@ class CompressorFileStorage(FileSystemStorage):
|
||||
super(CompressorFileStorage, self).__init__(location, base_url,
|
||||
*args, **kwargs)
|
||||
|
||||
class GzipCompressorFileStorage(CompressorFileStorage):
|
||||
"""
|
||||
The standard compressor file system storage that gzips storage files
|
||||
additionally to the usual files.
|
||||
"""
|
||||
def url(self, name):
|
||||
return u'%s.gz' % super(GzipCompressorFileStorage, self).url(name)
|
||||
|
||||
def save(self, filename, content):
|
||||
filename = super(GzipCompressorFileStorage, self).save(filename, content)
|
||||
out = gzip.open(u'%s.gz' % self.path(filename), 'wb')
|
||||
out.writelines(open(self.path(filename), 'rb'))
|
||||
out.close()
|
||||
|
||||
|
||||
class DefaultStorage(LazyObject):
|
||||
def _setup(self):
|
||||
self._wrapped = get_storage_class(settings.COMPRESS_STORAGE)()
|
||||
|
@@ -1,16 +0,0 @@
|
||||
import gzip
|
||||
from compressor.storage import CompressorFileStorage
|
||||
|
||||
|
||||
class TestStorage(CompressorFileStorage):
|
||||
"""
|
||||
Test compressor storage that gzips storage files
|
||||
"""
|
||||
def url(self, name):
|
||||
return u'%s.gz' % super(TestStorage, self).url(name)
|
||||
|
||||
def save(self, filename, content):
|
||||
filename = super(TestStorage, self).save(filename, content)
|
||||
out = gzip.open(u'%s.gz' % self.path(filename), 'wb')
|
||||
out.writelines(open(self.path(filename), 'rb'))
|
||||
out.close()
|
@@ -337,7 +337,7 @@ class TemplatetagTestCase(TestCase):
|
||||
class StorageTestCase(TestCase):
|
||||
def setUp(self):
|
||||
self._storage = base.default_storage
|
||||
base.default_storage = get_storage_class('compressor.tests.storage.TestStorage')()
|
||||
base.default_storage = get_storage_class('compressor.storage.GzipCompressorFileStorage')()
|
||||
settings.COMPRESS_ENABLED = True
|
||||
|
||||
def tearDown(self):
|
||||
|
@@ -182,6 +182,13 @@ COMPRESS_STORAGE
|
||||
The dotted path to a Django Storage backend to be used to save the
|
||||
compressed files.
|
||||
|
||||
``compressor`` ships with one additional storage backend:
|
||||
|
||||
* ``'compressor.storage.GzipCompressorFileStorage'``
|
||||
|
||||
A subclass of the default storage backend, which will additionally
|
||||
create ``*.gz`` files of each of the compressed files.
|
||||
|
||||
COMPRESS_PARSER
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
@@ -222,7 +229,7 @@ no file changes are detected.
|
||||
This is also used by the ``compress`` management command which pre-compresses
|
||||
the contents of ``{% compress %}`` template tags in the cache.
|
||||
|
||||
COMPRESS_MINT_DELAY``
|
||||
COMPRESS_MINT_DELAY
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
:Default: ``30`` (seconds)
|
||||
|
Reference in New Issue
Block a user