diff options
| author | msaelices <msaelices@gmail.com> | 2015-08-17 17:59:31 +0200 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-11-12 19:30:48 -0500 |
| commit | 7624fdb9f8ea4cbff407436606998f572898038b (patch) | |
| tree | 341293a573918afc1e4e2fa96e45b7901b5033c8 /tests/staticfiles_tests | |
| parent | ce4914eab4688ace4b97d14a8c271887235ebb3f (diff) | |
Fixed #25283 -- Fixed collectstatic crash if a URL contains a fragment with a path.
A @font-face declaration may contain a fragment that looks like a relative path,
e.g. @font-face { src: url('../fonts/font.svg#../path/like/fragment'); }
In this case, an incorrect path was passed to the storage backend, which raised
an error that caused collectstatic to crash.
Diffstat (limited to 'tests/staticfiles_tests')
| -rw-r--r-- | tests/staticfiles_tests/project/documents/cached/css/fragments.css | 1 | ||||
| -rw-r--r-- | tests/staticfiles_tests/test_storage.py | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/tests/staticfiles_tests/project/documents/cached/css/fragments.css b/tests/staticfiles_tests/project/documents/cached/css/fragments.css index 540d54b88d..e6e7049465 100644 --- a/tests/staticfiles_tests/project/documents/cached/css/fragments.css +++ b/tests/staticfiles_tests/project/documents/cached/css/fragments.css @@ -1,6 +1,7 @@ @font-face { src: url('fonts/font.eot?#iefix') format('embedded-opentype'), url('fonts/font.svg#webfontIyfZbseF') format('svg'); + url('fonts/font.svg#../path/to/fonts/font.svg') format('svg'); url('data:font/woff;charset=utf-8;base64,d09GRgABAAAAADJoAA0AAAAAR2QAAQAAAAAAAAAAAAA'); } div { diff --git a/tests/staticfiles_tests/test_storage.py b/tests/staticfiles_tests/test_storage.py index b96d9d0f12..f0c69cebe6 100644 --- a/tests/staticfiles_tests/test_storage.py +++ b/tests/staticfiles_tests/test_storage.py @@ -85,11 +85,12 @@ class TestHashedFiles(object): def test_path_with_querystring_and_fragment(self): relpath = self.hashed_file_path("cached/css/fragments.css") - self.assertEqual(relpath, "cached/css/fragments.75433540b096.css") + self.assertEqual(relpath, "cached/css/fragments.ef92012a8c16.css") with storage.staticfiles_storage.open(relpath) as relfile: content = relfile.read() self.assertIn(b'fonts/font.a4b0478549d0.eot?#iefix', content) self.assertIn(b'fonts/font.b8d603e42714.svg#webfontIyfZbseF', content) + self.assertIn(b'fonts/font.b8d603e42714.svg#../path/to/fonts/font.svg', content) self.assertIn(b'data:font/woff;charset=utf-8;base64,d09GRgABAAAAADJoAA0AAAAAR2QAAQAAAAAAAAAAAAA', content) self.assertIn(b'#default#VML', content) |
