Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
3ccb33c8
Commit
3ccb33c8
authored
Feb 11, 2013
by
Victor Shnayder
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Simplify, make it actually work.
- regexp was too complicated, didn't work
parent
2dcdeff4
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
8 deletions
+15
-8
common/djangoapps/static_replace/__init__.py
+7
-7
common/djangoapps/static_replace/test/test_static_replace.py
+8
-1
No files found.
common/djangoapps/static_replace/__init__.py
View file @
3ccb33c8
...
...
@@ -16,18 +16,14 @@ def _url_replace_regex(prefix):
"""
Match static urls in quotes that don't end in '?raw'.
I'm sorry. http://xkcd.com/1171/
(?<!blah) means "don't match if the previous thing is blah". Clear, eh?
(grep for negative lookbehind assertion in
http://docs.python.org/2/library/re.html)
To anyone contemplating making this more complicated:
http://xkcd.com/1171/
"""
return
r"""
(?x) # flags=re.VERBOSE
(?P<quote>\\?['"]) # the opening quotes
(?P<prefix>{prefix}) # the prefix
(?P<rest>.*? # everything else in the url...
(?<!\?raw)) # ...but not if it has '?raw' at the end.
(?P<rest>.*?) # everything else in the url
(?P=quote) # the first matching closing quote
"""
.
format
(
prefix
=
prefix
)
...
...
@@ -84,6 +80,10 @@ def replace_static_urls(text, data_directory, course_namespace=None):
quote
=
match
.
group
(
'quote'
)
rest
=
match
.
group
(
'rest'
)
# Don't mess with things that end in '?raw'
if
rest
.
endswith
(
'?raw'
):
return
original
# course_namespace is not None, then use studio style urls
if
course_namespace
is
not
None
and
not
isinstance
(
modulestore
(),
XMLModuleStore
):
url
=
StaticContent
.
convert_legacy_static_url
(
rest
,
course_namespace
)
...
...
common/djangoapps/static_replace/test/test_static_replace.py
View file @
3ccb33c8
...
...
@@ -81,15 +81,22 @@ def test_data_dir_fallback(mock_storage, mock_modulestore, mock_settings):
def
test_raw_static_check
():
"""
Make sure replace_static_urls leaves alone things that end in '.raw'
"""
path
=
'"/static/foo.png?raw"'
assert_equals
(
path
,
replace_static_urls
(
path
,
DATA_DIRECTORY
))
text
=
'text <tag a="/static/js/capa/protex/protex.nocache.js?raw"/><div class="'
assert_equals
(
path
,
replace_static_urls
(
path
,
text
))
def
test_regex
():
yes
=
(
'"/static/foo.png"'
,
'"/static/foo.png"'
,
"'/static/foo.png'"
)
no
=
(
'"/static/foo.png?raw"'
,
no
=
(
'"/not-static/foo.png"'
,
'"/static/foo'
,
# no matching quote
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment