diff --git a/compressor/base.py b/compressor/base.py index 7919e67..2d1e962 100644 --- a/compressor/base.py +++ b/compressor/base.py @@ -18,7 +18,7 @@ from compressor.conf import settings from compressor.exceptions import (CompressorError, UncompressableFileError, FilterDoesNotExist) from compressor.filters import CompilerFilter -from compressor.storage import default_storage, compressor_file_storage +from compressor.storage import compressor_file_storage from compressor.signals import post_compress from compressor.utils import get_class, get_mod_func, staticfiles from compressor.utils.decorators import cached_property @@ -40,12 +40,17 @@ class Compressor(object): self.output_prefix = output_prefix or "compressed" self.output_dir = settings.COMPRESS_OUTPUT_DIR.strip('/') self.charset = settings.DEFAULT_CHARSET - self.storage = default_storage self.split_content = [] self.context = context or {} self.extra_context = {} self.all_mimetypes = dict(settings.COMPRESS_PRECOMPILERS) self.finders = staticfiles.finders + self._storage = None + + @cached_property + def storage(self): + from compressor.storage import default_storage + return default_storage def split_contents(self): """ diff --git a/compressor/tests/test_storages.py b/compressor/tests/test_storages.py index ac1bfa8..bb9251c 100644 --- a/compressor/tests/test_storages.py +++ b/compressor/tests/test_storages.py @@ -6,7 +6,7 @@ from django.core.files.base import ContentFile from django.core.files.storage import get_storage_class from django.test import TestCase -from compressor import base +from compressor import storage from compressor.conf import settings from compressor.tests.test_base import css_tag from compressor.tests.test_templatetags import render @@ -16,12 +16,12 @@ class StorageTestCase(TestCase): def setUp(self): self.old_enabled = settings.COMPRESS_ENABLED settings.COMPRESS_ENABLED = True - self.default_storage = base.default_storage - base.default_storage = get_storage_class( + self.default_storage = storage.default_storage + storage.default_storage = get_storage_class( 'compressor.storage.GzipCompressorFileStorage')() def tearDown(self): - base.default_storage = self.default_storage + storage.default_storage = self.default_storage settings.COMPRESS_ENABLED = self.old_enabled def test_css_tag_with_storage(self): diff --git a/tox.ini b/tox.ini index 95e8031..9c21c3b 100644 --- a/tox.ini +++ b/tox.ini @@ -29,6 +29,7 @@ envlist = py26-1.4.X [testenv] +whitelist_externals = make downloadcache = {toxworkdir}/_download/ commands = django-admin.py --version