Opened 12 years ago
Closed 9 years ago
#19670 closed Bug (fixed)
CachedFilesMixin Doesn't Limit Substitutions to Extension Matches
Reported by: | Matthew Tretter | Owned by: | |
---|---|---|---|
Component: | contrib.staticfiles | Version: | 1.4 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Ready for checkin | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
The format of the patterns
attribute seems to imply that substitutions will only be performed in files with the corresponding extension. However, if a file matches *any* of the filename patterns, then *all* of the listed substitutions will be performed. For example:
patterns = ( ("*.css", ( r"""(url\(['"]{0,1}\s*(.*?)["']{0,1}\))""", r"""(@import\s*["']\s*(.*?)["'])""", )), ("*.js", ( r"whatever", ), )
Not only will url_converter()
be called for any occurrences of the word "whatever" in JavaScript files, but also for any occurrences of url('something')
and @import('something')
(in JavaScript files).
Attachments (1)
Change History (9)
comment:1 by , 12 years ago
Triage Stage: | Unreviewed → Accepted |
---|
comment:2 by , 12 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:3 by , 11 years ago
We are affected by this. It seems that changing for patterns in self._patterns.values():
to for patterns in self._patterns.get(extension, []):
will do the trick.
comment:4 by , 11 years ago
Owner: | removed |
---|---|
Status: | assigned → new |
Just in case I don't get around to finishing this, I'll attach my WIP patch. From memory it was all working fine apart from an isolation issue whereby an unrelated test method would cause failure depending on the order in which the tests were run.
comment:5 by , 11 years ago
Looks correct to me. We'll try this out in our code and report back tomorrow, thanks.
comment:6 by , 9 years ago
Has patch: | set |
---|---|
Patch needs improvement: | set |
Patch updated in this PR. Tests fail on Windows.
comment:7 by , 9 years ago
Patch needs improvement: | unset |
---|---|
Triage Stage: | Accepted → Ready for checkin |
I have a patch for this, just need to put the tests together.