Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1746)

Unified Diff: Tools/Scripts/webkitpy/w3c/test_converter.py

Issue 15901008: Modify w3c import script to be able to run over a whole repo. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: add more FIXME comments for error handling Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Tools/Scripts/webkitpy/w3c/test_converter.py
diff --git a/Tools/Scripts/webkitpy/w3c/test_converter.py b/Tools/Scripts/webkitpy/w3c/test_converter.py
index 169e0342cc1efaad5a7c200bba0b59468d263239..9d9578865c308a67efed406d7975e56438924280 100644
--- a/Tools/Scripts/webkitpy/w3c/test_converter.py
+++ b/Tools/Scripts/webkitpy/w3c/test_converter.py
@@ -73,19 +73,19 @@ class W3CTestConverter(object):
Returns the list of modified properties and the modified text if the file was modifed, None otherwise."""
contents = self._filesystem.read_binary_file(filename)
if filename.endswith('.css'):
- return self.convert_css(contents)
- return self.convert_html(new_path, contents)
+ return self.convert_css(contents, filename)
+ return self.convert_html(new_path, contents, filename)
- def convert_css(self, contents):
- return self.add_webkit_prefix_to_unprefixed_properties(contents)
+ def convert_css(self, contents, filename):
+ return self.add_webkit_prefix_to_unprefixed_properties(contents, filename)
- def convert_html(self, new_path, contents):
+ def convert_html(self, new_path, contents, filename):
doc = BeautifulSoup(contents)
- did_modify_paths = self.convert_testharness_paths(doc, new_path)
- converted_properties_and_content = self.convert_prefixed_properties(doc)
+ did_modify_paths = self.convert_testharness_paths(doc, new_path, filename)
+ converted_properties_and_content = self.convert_prefixed_properties(doc, filename)
return converted_properties_and_content if (did_modify_paths or converted_properties_and_content[0]) else None
- def convert_testharness_paths(self, doc, new_path):
+ def convert_testharness_paths(self, doc, new_path, filename):
""" Update links to testharness.js in the BeautifulSoup |doc| to point to the copy in |new_path|.
Returns whether the document was modified."""
@@ -108,6 +108,12 @@ class W3CTestConverter(object):
if tag.name != 'script':
attr = 'href'
+ if not attr in tag:
+ # FIXME: Figure out what to do w/ invalid tags. For now, we return False
+ # and leave the document unmodified, which means that it'll probably fail to run.
+ print "Error: missing an attr in %s" % filename
+ return False
+
old_path = tag[attr]
new_tag = Tag(doc, tag.name, tag.attrs)
new_tag[attr] = re.sub(pattern, resources_relpath + '/testharness', old_path)
@@ -116,7 +122,7 @@ class W3CTestConverter(object):
return True
- def convert_prefixed_properties(self, doc):
+ def convert_prefixed_properties(self, doc, filename):
""" Searches a BeautifulSoup |doc| for any CSS properties requiring the -webkit- prefix and converts them.
Returns the list of converted properties and the modified document as a string """
@@ -139,7 +145,7 @@ class W3CTestConverter(object):
else:
style_text = tag['style']
- updated_style_text = self.add_webkit_prefix_to_unprefixed_properties(style_text)
+ updated_style_text = self.add_webkit_prefix_to_unprefixed_properties(style_text, filename)
# Rewrite tag only if changes were made.
if updated_style_text[0]:
@@ -152,7 +158,7 @@ class W3CTestConverter(object):
return (converted_properties, doc.prettify())
- def add_webkit_prefix_to_unprefixed_properties(self, text):
+ def add_webkit_prefix_to_unprefixed_properties(self, text, filename):
""" Searches |text| for instances of properties requiring the -webkit- prefix and adds the prefix to them.
Returns the list of converted properties and the modified text."""
« no previous file with comments | « no previous file | Tools/Scripts/webkitpy/w3c/test_importer.py » ('j') | Tools/Scripts/webkitpy/w3c/test_parser.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698