diff --git a/compressor/tests/test_base.py b/compressor/tests/test_base.py
index 9ddfbb4..a03cb12 100644
--- a/compressor/tests/test_base.py
+++ b/compressor/tests/test_base.py
@@ -128,8 +128,8 @@ class CompressorTestCase(SimpleTestCase):
self.assertTrue(is_date.match(str(float(date))),
"mtimes is returning something that doesn't look like a date: %s" % date)
+ @override_settings(COMPRESS_ENABLED=False)
def test_css_return_if_off(self):
- settings.COMPRESS_ENABLED = False
self.assertEqualCollapsed(self.css, self.css_node.output())
def test_cachekey(self):
diff --git a/compressor/tests/test_filters.py b/compressor/tests/test_filters.py
index 4817e85..9d40697 100644
--- a/compressor/tests/test_filters.py
+++ b/compressor/tests/test_filters.py
@@ -47,6 +47,7 @@ class CssTidyTestCase(TestCase):
"font,th,td,p{color:#000;}", CSSTidyFilter(content).input())
+@override_settings(COMPRESS_CACHEABLE_PRECOMPILERS=('text/css',))
class PrecompilerTestCase(TestCase):
def setUp(self):
self.test_precompiler = os.path.join(test_dir, 'precompiler.py')
@@ -54,7 +55,6 @@ class PrecompilerTestCase(TestCase):
self.cached_precompiler_args = dict(
content=self.content, charset=settings.FILE_CHARSET,
filename=self.filename, mimetype='text/css')
- settings.COMPRESS_CACHEABLE_PRECOMPILERS = ('text/css',)
def setup_infile(self, filename='static/css/one.css'):
self.filename = os.path.join(test_dir, filename)
@@ -197,6 +197,10 @@ class JsMinTestCase(TestCase):
self.assertEqual(output, JSMinFilter(content).output())
+@override_settings(
+ COMPRESS_ENABLED=True,
+ COMPRESS_URL='/static/',
+)
class CssAbsolutizingTestCase(TestCase):
hashing_method = 'mtime'
hashing_func = staticmethod(get_hashed_mtime)
@@ -204,11 +208,7 @@ class CssAbsolutizingTestCase(TestCase):
"p { filter: Alpha(src='%(url)simg/python.png%(query)s%(hash)s%(frag)s') }")
def setUp(self):
- self.old_enabled = settings.COMPRESS_ENABLED
- self.old_url = settings.COMPRESS_URL
self.old_hashing_method = settings.COMPRESS_CSS_HASHING_METHOD
- settings.COMPRESS_ENABLED = True
- settings.COMPRESS_URL = '/static/'
settings.COMPRESS_CSS_HASHING_METHOD = self.hashing_method
self.css = """
@@ -217,12 +217,10 @@ class CssAbsolutizingTestCase(TestCase):
self.css_node = CssCompressor(self.css)
def tearDown(self):
- settings.COMPRESS_ENABLED = self.old_enabled
- settings.COMPRESS_URL = self.old_url
settings.COMPRESS_CSS_HASHING_METHOD = self.old_hashing_method
+ @override_settings(COMPRESS_CSS_HASHING_METHOD=None)
def test_css_no_hash(self):
- settings.COMPRESS_CSS_HASHING_METHOD = None
filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
content = self.template % blankdict(url='../../')
params = blankdict({
@@ -232,10 +230,11 @@ class CssAbsolutizingTestCase(TestCase):
filter = CssAbsoluteFilter(content)
self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
- settings.COMPRESS_URL = params['url'] = 'http://static.example.com/'
- output = self.template % params
- filter = CssAbsoluteFilter(content)
- self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
+ with self.settings(COMPRESS_URL='http://static.example.com/'):
+ params['url'] = settings.COMPRESS_URL
+ output = self.template % params
+ filter = CssAbsoluteFilter(content)
+ self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter(self):
filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
@@ -249,10 +248,11 @@ class CssAbsolutizingTestCase(TestCase):
filter = CssAbsoluteFilter(content)
self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
- settings.COMPRESS_URL = params['url'] = 'http://static.example.com/'
- output = self.template % params
- filter = CssAbsoluteFilter(content)
- self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
+ with self.settings(COMPRESS_URL='http://static.example.com/'):
+ params['url'] = settings.COMPRESS_URL
+ output = self.template % params
+ filter = CssAbsoluteFilter(content)
+ self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_url_fragment(self):
filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
@@ -267,10 +267,11 @@ class CssAbsolutizingTestCase(TestCase):
filter = CssAbsoluteFilter(content)
self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
- settings.COMPRESS_URL = params['url'] = 'http://media.example.com/'
- output = self.template % params
- filter = CssAbsoluteFilter(content)
- self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
+ with self.settings(COMPRESS_URL='http://media.example.com/'):
+ params['url'] = settings.COMPRESS_URL
+ output = self.template % params
+ filter = CssAbsoluteFilter(content)
+ self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_only_url_fragment(self):
filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
@@ -278,9 +279,9 @@ class CssAbsolutizingTestCase(TestCase):
filter = CssAbsoluteFilter(content)
self.assertEqual(content, filter.input(filename=filename, basename='css/url/test.css'))
- settings.COMPRESS_URL = 'http://media.example.com/'
- filter = CssAbsoluteFilter(content)
- self.assertEqual(content, filter.input(filename=filename, basename='css/url/test.css'))
+ with self.settings(COMPRESS_URL='http://media.example.com/'):
+ filter = CssAbsoluteFilter(content)
+ self.assertEqual(content, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_querystring(self):
filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
@@ -295,10 +296,11 @@ class CssAbsolutizingTestCase(TestCase):
filter = CssAbsoluteFilter(content)
self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
- settings.COMPRESS_URL = params['url'] = 'http://media.example.com/'
- output = self.template % params
- filter = CssAbsoluteFilter(content)
- self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
+ with self.settings(COMPRESS_URL='http://media.example.com/'):
+ params['url'] = settings.COMPRESS_URL
+ output = self.template % params
+ filter = CssAbsoluteFilter(content)
+ self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_https(self):
filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
@@ -312,10 +314,11 @@ class CssAbsolutizingTestCase(TestCase):
filter = CssAbsoluteFilter(content)
self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
- settings.COMPRESS_URL = params['url'] = 'https://static.example.com/'
- output = self.template % params
- filter = CssAbsoluteFilter(content)
- self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
+ with self.settings(COMPRESS_URL='https://static.example.com/'):
+ params['url'] = settings.COMPRESS_URL
+ output = self.template % params
+ filter = CssAbsoluteFilter(content)
+ self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_relative_path(self):
filename = os.path.join(settings.TEST_DIR, 'whatever', '..', 'static', 'whatever/../css/url/test.css')
@@ -329,10 +332,11 @@ class CssAbsolutizingTestCase(TestCase):
filter = CssAbsoluteFilter(content)
self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
- settings.COMPRESS_URL = params['url'] = 'https://static.example.com/'
- output = self.template % params
- filter = CssAbsoluteFilter(content)
- self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
+ with self.settings(COMPRESS_URL='https://static.example.com/'):
+ params['url'] = settings.COMPRESS_URL
+ output = self.template % params
+ filter = CssAbsoluteFilter(content)
+ self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_filename_outside_compress_root(self):
filename = '/foo/bar/baz/test.css'
@@ -343,11 +347,12 @@ class CssAbsolutizingTestCase(TestCase):
output = self.template % params
filter = CssAbsoluteFilter(content)
self.assertEqual(output, filter.input(filename=filename, basename='bar/baz/test.css'))
- settings.COMPRESS_URL = 'https://static.example.com/'
- params['url'] = settings.COMPRESS_URL + 'bar/qux/'
- output = self.template % params
- filter = CssAbsoluteFilter(content)
- self.assertEqual(output, filter.input(filename=filename, basename='bar/baz/test.css'))
+
+ with self.settings(COMPRESS_URL='https://static.example.com/'):
+ params['url'] = settings.COMPRESS_URL + 'bar/qux/'
+ output = self.template % params
+ filter = CssAbsoluteFilter(content)
+ self.assertEqual(output, filter.input(filename=filename, basename='bar/baz/test.css'))
def test_css_hunks(self):
hash_dict = {
@@ -371,12 +376,12 @@ p { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/static/img/
def test_guess_filename(self):
for base_url in ('/static/', 'http://static.example.com/'):
- settings.COMPRESS_URL = base_url
- url = '%s/img/python.png' % settings.COMPRESS_URL.rstrip('/')
- path = os.path.join(settings.COMPRESS_ROOT, 'img/python.png')
- content = "p { background: url('%s') }" % url
- filter = CssAbsoluteFilter(content)
- self.assertEqual(path, filter.guess_filename(url))
+ with self.settings(COMPRESS_URL=base_url):
+ url = '%s/img/python.png' % settings.COMPRESS_URL.rstrip('/')
+ path = os.path.join(settings.COMPRESS_ROOT, 'img/python.png')
+ content = "p { background: url('%s') }" % url
+ filter = CssAbsoluteFilter(content)
+ self.assertEqual(path, filter.guess_filename(url))
class CssAbsolutizingTestCaseWithHash(CssAbsolutizingTestCase):
@@ -384,15 +389,17 @@ class CssAbsolutizingTestCaseWithHash(CssAbsolutizingTestCase):
hashing_func = staticmethod(get_hashed_content)
+@override_settings(
+ COMPRESS_ENABLED=True,
+ COMPRESS_CSS_FILTERS=[
+ 'compressor.filters.css_default.CssAbsoluteFilter',
+ 'compressor.filters.datauri.CssDataUriFilter',
+ ],
+ COMPRESS_URL='/static/',
+ COMPRESS_CSS_HASHING_METHOD='mtime'
+)
class CssDataUriTestCase(TestCase):
def setUp(self):
- settings.COMPRESS_ENABLED = True
- settings.COMPRESS_CSS_FILTERS = [
- 'compressor.filters.css_default.CssAbsoluteFilter',
- 'compressor.filters.datauri.CssDataUriFilter',
- ]
- settings.COMPRESS_URL = '/static/'
- settings.COMPRESS_CSS_HASHING_METHOD = 'mtime'
self.css = """
"""
diff --git a/compressor/tests/test_jinja2ext.py b/compressor/tests/test_jinja2ext.py
index 04adb9a..4dff589 100644
--- a/compressor/tests/test_jinja2ext.py
+++ b/compressor/tests/test_jinja2ext.py
@@ -11,7 +11,7 @@ from compressor.conf import settings
from compressor.tests.test_base import css_tag
-@unittest.skipUnless(not six.PY3 or sys.version_info[:2] >= (3, 3),
+@unittest.skipIf(six.PY3 and sys.version_info[:2] < (3, 3),
'Jinja can only run on Python < 3 and >= 3.3')
class TestJinja2CompressorExtension(TestCase):
"""
@@ -143,13 +143,11 @@ class TestJinja2CompressorExtension(TestCase):
self.assertEqual(out, template.render(context))
def test_nonascii_inline_css(self):
- org_COMPRESS_ENABLED = settings.COMPRESS_ENABLED
- settings.COMPRESS_ENABLED = False
- template = self.env.from_string('{% compress css %}'
- '{% endcompress %}')
+ with self.settings(COMPRESS_ENABLED=False):
+ template = self.env.from_string('{% compress css %}'
+ '{% endcompress %}')
out = ''
- settings.COMPRESS_ENABLED = org_COMPRESS_ENABLED
context = {'STATIC_URL': settings.COMPRESS_URL}
self.assertEqual(out, template.render(context))
diff --git a/compressor/tests/test_offline.py b/compressor/tests/test_offline.py
index 730706e..23ad134 100644
--- a/compressor/tests/test_offline.py
+++ b/compressor/tests/test_offline.py
@@ -217,7 +217,7 @@ class OfflineGenerationConditionTestCase(OfflineTestCaseMixin, TestCase):
super(OfflineGenerationConditionTestCase, self).setUp()
def tearDown(self):
- self.COMPRESS_OFFLINE_CONTEXT = self.old_offline_context
+ settings.COMPRESS_OFFLINE_CONTEXT = self.old_offline_context
super(OfflineGenerationConditionTestCase, self).tearDown()
@@ -406,7 +406,7 @@ class OfflineGenerationInlineNonAsciiTestCase(OfflineTestCaseMixin, TestCase):
super(OfflineGenerationInlineNonAsciiTestCase, self).setUp()
def tearDown(self):
- self.COMPRESS_OFFLINE_CONTEXT = self.old_offline_context
+ settings.COMPRESS_OFFLINE_CONTEXT = self.old_offline_context
super(OfflineGenerationInlineNonAsciiTestCase, self).tearDown()
def _test_offline(self, engine):
@@ -429,7 +429,7 @@ class OfflineGenerationComplexTestCase(OfflineTestCaseMixin, TestCase):
super(OfflineGenerationComplexTestCase, self).setUp()
def tearDown(self):
- self.COMPRESS_OFFLINE_CONTEXT = self.old_offline_context
+ settings.COMPRESS_OFFLINE_CONTEXT = self.old_offline_context
super(OfflineGenerationComplexTestCase, self).tearDown()
def _test_offline(self, engine):
diff --git a/compressor/tests/test_parsers.py b/compressor/tests/test_parsers.py
index d9b4dd6..b6b370a 100644
--- a/compressor/tests/test_parsers.py
+++ b/compressor/tests/test_parsers.py
@@ -101,8 +101,8 @@ class Html5LibParserTests(ParserTestCase, CompressorTestCase):
split[1][3].attrib,
split[1][3].text))
+ @override_settings(COMPRESS_ENABLED=False)
def test_css_return_if_off(self):
- settings.COMPRESS_ENABLED = False
# Yes, they are semantically equal but attributes might be
# scrambled in unpredictable order. A more elaborate check
# would require parsing both arguments with a different parser
diff --git a/compressor/tests/test_signals.py b/compressor/tests/test_signals.py
index 13d5eed..e3645b8 100644
--- a/compressor/tests/test_signals.py
+++ b/compressor/tests/test_signals.py
@@ -1,18 +1,20 @@
from django.test import TestCase
+from django.test.utils import override_settings
from mock import Mock
-from compressor.conf import settings
from compressor.css import CssCompressor
from compressor.js import JsCompressor
from compressor.signals import post_compress
+@override_settings(
+ COMPRESS_ENABLED=True,
+ COMPRESS_PRECOMPILERS=(),
+ COMPRESS_DEBUG_TOGGLE='nocompress'
+)
class PostCompressSignalTestCase(TestCase):
def setUp(self):
- settings.COMPRESS_ENABLED = True
- settings.COMPRESS_PRECOMPILERS = ()
- settings.COMPRESS_DEBUG_TOGGLE = 'nocompress'
self.css = """\
diff --git a/compressor/tests/test_storages.py b/compressor/tests/test_storages.py
index 91a36f2..9bbc026 100644
--- a/compressor/tests/test_storages.py
+++ b/compressor/tests/test_storages.py
@@ -5,6 +5,7 @@ import os
from django.core.files.base import ContentFile
from django.core.files.storage import get_storage_class
from django.test import TestCase
+from django.test.utils import override_settings
from django.utils.functional import LazyObject
from compressor import storage
@@ -18,16 +19,14 @@ class GzipStorage(LazyObject):
self._wrapped = get_storage_class('compressor.storage.GzipCompressorFileStorage')()
+@override_settings(COMPRESS_ENABLED=True)
class StorageTestCase(TestCase):
def setUp(self):
- self.old_enabled = settings.COMPRESS_ENABLED
- settings.COMPRESS_ENABLED = True
self.default_storage = storage.default_storage
storage.default_storage = GzipStorage()
def tearDown(self):
storage.default_storage = self.default_storage
- settings.COMPRESS_ENABLED = self.old_enabled
def test_gzip_storage(self):
storage.default_storage.save('test.txt', ContentFile('yeah yeah'))
diff --git a/compressor/tests/test_templatetags.py b/compressor/tests/test_templatetags.py
index db0d1b7..321c239 100644
--- a/compressor/tests/test_templatetags.py
+++ b/compressor/tests/test_templatetags.py
@@ -25,15 +25,11 @@ def render(template_string, context_dict=None):
return t.render(c).strip()
+@override_settings(COMPRESS_ENABLED=True)
class TemplatetagTestCase(TestCase):
def setUp(self):
- self.old_enabled = settings.COMPRESS_ENABLED
- settings.COMPRESS_ENABLED = True
self.context = {'STATIC_URL': settings.COMPRESS_URL}
- def tearDown(self):
- settings.COMPRESS_ENABLED = self.old_enabled
-
def test_empty_tag(self):
template = """{% load compress %}{% compress js %}{% block js %}
{% endblock %}{% endcompress %}"""