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

Side by Side Diff: Tools/Scripts/webkitpy/w3c/test_converter.py

Issue 16171009: switch import-w3c-tests from using print statements to logging (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: clean up paths a bit Created 7 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 2
3 # Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. 3 # Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved.
4 # 4 #
5 # Redistribution and use in source and binary forms, with or without 5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions 6 # modification, are permitted provided that the following conditions
7 # are met: 7 # are met:
8 # 8 #
9 # 1. Redistributions of source code must retain the above 9 # 1. Redistributions of source code must retain the above
10 # copyright notice, this list of conditions and the following 10 # copyright notice, this list of conditions and the following
11 # disclaimer. 11 # disclaimer.
12 # 2. Redistributions in binary form must reproduce the above 12 # 2. Redistributions in binary form must reproduce the above
13 # copyright notice, this list of conditions and the following 13 # copyright notice, this list of conditions and the following
14 # disclaimer in the documentation and/or other materials 14 # disclaimer in the documentation and/or other materials
15 # provided with the distribution. 15 # provided with the distribution.
16 # 16 #
17 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS" AND ANY 17 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS" AND ANY
18 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE 20 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
21 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 21 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
22 # OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 22 # OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23 # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24 # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
26 # TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 26 # TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
27 # THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 # THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 # SUCH DAMAGE. 28 # SUCH DAMAGE.
29 29
30 import logging
30 import re 31 import re
31 32
32 from webkitpy.common.host import Host 33 from webkitpy.common.host import Host
33 from webkitpy.thirdparty.BeautifulSoup import BeautifulSoup, Tag 34 from webkitpy.thirdparty.BeautifulSoup import BeautifulSoup, Tag
34 35
35 36
37 _log = logging.getLogger(__name__)
38
39
36 class W3CTestConverter(object): 40 class W3CTestConverter(object):
37 41
38 def __init__(self): 42 def __init__(self):
39 self._host = Host() 43 self._host = Host()
40 self._filesystem = self._host.filesystem 44 self._filesystem = self._host.filesystem
41 self._host.initialize_scm() 45 self._host.initialize_scm()
42 self._webkit_root = self._host.scm().checkout_root 46 self._webkit_root = self._host.scm().checkout_root
43 47
44 # These settings might vary between WebKit and Blink 48 # These settings might vary between WebKit and Blink
45 self._css_property_file = self.path_from_webkit_root('Source', 'core', ' css', 'CSSPropertyNames.in') 49 self._css_property_file = self.path_from_webkit_root('Source', 'core', ' css', 'CSSPropertyNames.in')
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 105
102 resources_path = self.path_from_webkit_root('LayoutTests', 'resources') 106 resources_path = self.path_from_webkit_root('LayoutTests', 'resources')
103 resources_relpath = self._filesystem.relpath(resources_path, new_path) 107 resources_relpath = self._filesystem.relpath(resources_path, new_path)
104 108
105 for tag in testharness_tags: 109 for tag in testharness_tags:
106 # FIXME: We need to handle img, audio, video tags also. 110 # FIXME: We need to handle img, audio, video tags also.
107 attr = 'src' 111 attr = 'src'
108 if tag.name != 'script': 112 if tag.name != 'script':
109 attr = 'href' 113 attr = 'href'
110 114
111 if not attr in tag: 115 if not attr in tag.attrMap:
112 # FIXME: Figure out what to do w/ invalid tags. For now, we retu rn False 116 # FIXME: Figure out what to do w/ invalid tags. For now, we retu rn False
113 # and leave the document unmodified, which means that it'll prob ably fail to run. 117 # and leave the document unmodified, which means that it'll prob ably fail to run.
114 print "Error: missing an attr in %s" % filename 118 _log.error("Missing an attr in %s" % filename)
115 return False 119 return False
116 120
117 old_path = tag[attr] 121 old_path = tag[attr]
118 new_tag = Tag(doc, tag.name, tag.attrs) 122 new_tag = Tag(doc, tag.name, tag.attrs)
119 new_tag[attr] = re.sub(pattern, resources_relpath + '/testharness', old_path) 123 new_tag[attr] = re.sub(pattern, resources_relpath + '/testharness', old_path)
120 124
121 self.replace_tag(tag, new_tag) 125 self.replace_tag(tag, new_tag)
122 126
123 return True 127 return True
124 128
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 # FIXME: add in both the prefixed and unprefixed versions, rather th an just replacing them? 173 # FIXME: add in both the prefixed and unprefixed versions, rather th an just replacing them?
170 # That might allow the imported test to work in other browsers more easily. 174 # That might allow the imported test to work in other browsers more easily.
171 175
172 unprefixed_property = prefixed_property.replace('-webkit-', '') 176 unprefixed_property = prefixed_property.replace('-webkit-', '')
173 177
174 # Look for the various ways it might be in the CSS 178 # Look for the various ways it might be in the CSS
175 # Match the the property preceded by either whitespace or left curly brace 179 # Match the the property preceded by either whitespace or left curly brace
176 # or at the beginning of the string (for inline style attribute) 180 # or at the beginning of the string (for inline style attribute)
177 pattern = '([\s{]|^)' + unprefixed_property + '(\s+:|:)' 181 pattern = '([\s{]|^)' + unprefixed_property + '(\s+:|:)'
178 if re.search(pattern, text): 182 if re.search(pattern, text):
179 print 'converting %s -> %s' % (unprefixed_property, prefixed_pro perty) 183 _log.info('converting %s -> %s' % (unprefixed_property, prefixed _property))
180 converted_properties.append(prefixed_property) 184 converted_properties.append(prefixed_property)
181 text = re.sub(pattern, prefixed_property + ':', text) 185 text = re.sub(pattern, prefixed_property + ':', text)
182 186
183 # FIXME: Handle the JS versions of these properties and GetComputedStyle , too. 187 # FIXME: Handle the JS versions of these properties and GetComputedStyle , too.
184 return (converted_properties, text) 188 return (converted_properties, text)
185 189
186 def replace_tag(self, old_tag, new_tag): 190 def replace_tag(self, old_tag, new_tag):
187 index = old_tag.parent.contents.index(old_tag) 191 index = old_tag.parent.contents.index(old_tag)
188 old_tag.parent.insert(index, new_tag) 192 old_tag.parent.insert(index, new_tag)
189 old_tag.extract() 193 old_tag.extract()
OLDNEW
« no previous file with comments | « no previous file | Tools/Scripts/webkitpy/w3c/test_converter_unittest.py » ('j') | Tools/Scripts/webkitpy/w3c/test_importer.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698