summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksandra Sendecka <asendecka@hauru.eu>2013-02-23 22:39:37 +0100
committerAleksandra Sendecka <asendecka@hauru.eu>2013-02-23 23:05:22 +0100
commit32a7ab21482ef06f7e01a70fad8495f659c4d29f (patch)
treedc111c7db6798b93460a8e7ddec573e9bb034977
parent1c11ee63459c4362affbd6a20f2ddf9c2ecd8dce (diff)
Fixed #19526
CSS specifications governs that syntax is case insensitive. This modifies CachedFilesMixin to support that.
-rw-r--r--django/contrib/staticfiles/storage.py2
-rw-r--r--tests/regressiontests/staticfiles_tests/project/documents/cached/styles_insensitive.css1
-rw-r--r--tests/regressiontests/staticfiles_tests/tests.py8
3 files changed, 10 insertions, 1 deletions
diff --git a/django/contrib/staticfiles/storage.py b/django/contrib/staticfiles/storage.py
index 7e87a89f5b..f444e12c19 100644
--- a/django/contrib/staticfiles/storage.py
+++ b/django/contrib/staticfiles/storage.py
@@ -71,7 +71,7 @@ class CachedFilesMixin(object):
pattern, template = pattern
else:
template = self.default_template
- compiled = re.compile(pattern)
+ compiled = re.compile(pattern, re.IGNORECASE)
self._patterns.setdefault(extension, []).append((compiled, template))
def file_hash(self, name, content=None):
diff --git a/tests/regressiontests/staticfiles_tests/project/documents/cached/styles_insensitive.css b/tests/regressiontests/staticfiles_tests/project/documents/cached/styles_insensitive.css
new file mode 100644
index 0000000000..57904ad415
--- /dev/null
+++ b/tests/regressiontests/staticfiles_tests/project/documents/cached/styles_insensitive.css
@@ -0,0 +1 @@
+@IMporT uRL("other.css"); \ No newline at end of file
diff --git a/tests/regressiontests/staticfiles_tests/tests.py b/tests/regressiontests/staticfiles_tests/tests.py
index 35d5683a0c..555ea9f3d2 100644
--- a/tests/regressiontests/staticfiles_tests/tests.py
+++ b/tests/regressiontests/staticfiles_tests/tests.py
@@ -542,6 +542,14 @@ class TestCollectionCachedStorage(BaseCollectionTestCase,
cache_validator.validate_key(cache_key)
self.assertEqual(cache_key, 'staticfiles:821ea71ef36f95b3922a77f7364670e7')
+ def test_css_import_case_insensitive(self):
+ relpath = self.cached_file_path("cached/styles_insensitive.css")
+ self.assertEqual(relpath, "cached/styles_insensitive.2f0151cca872.css")
+ with storage.staticfiles_storage.open(relpath) as relfile:
+ content = relfile.read()
+ self.assertNotIn(b"cached/other.css", content)
+ self.assertIn(b"other.d41d8cd98f00.css", content)
+
# we set DEBUG to False here since the template tag wouldn't work otherwise
@override_settings(**dict(TEST_SETTINGS,