Changeset 57920 in webkit
- Timestamp:
- Apr 20, 2010 2:29:54 PM (14 years ago)
- Location:
- trunk/WebKitTools
- Files:
-
- 32 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKitTools/ChangeLog
r57918 r57920 1 2010-04-20 Eric Seidel <eric@webkit.org> 2 3 Unreviewed, rolling out r57907. 4 http://trac.webkit.org/changeset/57907 5 https://bugs.webkit.org/show_bug.cgi?id=37765 6 7 Appears to have broken MacEWS and possibly webkit-patch upload 8 for svn users. Needs further investigation. 9 10 * Scripts/webkitpy/common/checkout/api.py: 11 * Scripts/webkitpy/common/checkout/api_unittest.py: 12 * Scripts/webkitpy/common/checkout/changelog.py: 13 * Scripts/webkitpy/common/checkout/changelog_unittest.py: 14 * Scripts/webkitpy/common/checkout/commitinfo.py: 15 * Scripts/webkitpy/common/checkout/scm.py: 16 * Scripts/webkitpy/common/checkout/scm_unittest.py: 17 * Scripts/webkitpy/common/config/committers.py: 18 * Scripts/webkitpy/common/net/bugzilla.py: 19 * Scripts/webkitpy/common/net/buildbot.py: 20 * Scripts/webkitpy/common/net/buildbot_unittest.py: 21 * Scripts/webkitpy/common/net/statusserver.py: 22 * Scripts/webkitpy/common/prettypatch.py: 23 * Scripts/webkitpy/common/system/autoinstall.py: 24 * Scripts/webkitpy/common/system/deprecated_logging.py: 25 * Scripts/webkitpy/common/system/executive.py: 26 * Scripts/webkitpy/common/system/executive_unittest.py: 27 * Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py: 28 * Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py: 29 * Scripts/webkitpy/layout_tests/layout_package/metered_stream.py: 30 * Scripts/webkitpy/layout_tests/port/mac_unittest.py: 31 * Scripts/webkitpy/tool/commands/earlywarningsystem.py: 32 * Scripts/webkitpy/tool/commands/queues.py: 33 * Scripts/webkitpy/tool/commands/queues_unittest.py: 34 * Scripts/webkitpy/tool/commands/upload.py: 35 * Scripts/webkitpy/tool/mocktool.py: 36 * Scripts/webkitpy/tool/steps/abstractstep.py: 37 * Scripts/webkitpy/tool/steps/postdiff.py: 38 * Scripts/webkitpy/tool/steps/postdiffforcommit.py: 39 * Scripts/webkitpy/tool/steps/postdiffforrevert.py: 40 * Scripts/webkitpy/tool/steps/steps_unittest.py: 41 1 42 2010-04-20 Nate Chapin <japhet@chromium.org> 2 43 -
trunk/WebKitTools/Scripts/webkitpy/common/checkout/api.py
r57907 r57920 51 51 def _latest_entry_for_changelog_at_revision(self, changelog_path, revision): 52 52 changelog_contents = self._scm.contents_at_revision(changelog_path, revision) 53 fake_file = StringIO.StringIO(changelog_contents.encode("utf-8")) 54 return ChangeLog.parse_latest_entry_from_file(fake_file) 53 return ChangeLog.parse_latest_entry_from_file(StringIO.StringIO(changelog_contents)) 55 54 56 55 def changelog_entries_for_revision(self, revision): -
trunk/WebKitTools/Scripts/webkitpy/common/checkout/api_unittest.py
r57907 r57920 27 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 28 29 import codecs30 29 import os 31 30 import shutil … … 41 40 # FIXME: Copied from scm_unittest.py 42 41 def write_into_file_at_path(file_path, contents): 43 new_file = codecs.open(file_path, "w", "utf-8")42 new_file = open(file_path, 'w') 44 43 new_file.write(contents) 45 44 new_file.close() 46 45 47 46 48 _changelog1entry1 = u"""2010-03-25 Tor Arne Vestb\u00f8 <vestbo@webkit.org>47 _changelog1entry1 = """2010-03-25 Eric Seidel <eric@webkit.org> 49 48 50 49 Unreviewed build fix to un-break webkit-patch land. … … 55 54 * Scripts/webkitpy/common/checkout/api.py: import scm.CommitMessage 56 55 """ 57 _changelog1entry2 = u"""2010-03-25 Adam Barth <abarth@webkit.org>56 _changelog1entry2 = """2010-03-25 Adam Barth <abarth@webkit.org> 58 57 59 58 Reviewed by Eric Seidel. … … 64 63 * Scripts/webkitpy/common/checkout/api.py: 65 64 """ 66 _changelog1 = u"\n".join([_changelog1entry1, _changelog1entry2])67 _changelog2 = u"""2010-03-25 Tor Arne Vestb\u00f8 <vestbo@webkit.org>65 _changelog1 = "\n".join([_changelog1entry1, _changelog1entry2]) 66 _changelog2 = """2010-03-25 Eric Seidel <eric@webkit.org> 68 67 69 68 Unreviewed build fix to un-break webkit-patch land. … … 81 80 82 81 class CommitMessageForThisCommitTest(unittest.TestCase): 83 expected_commit_message = u"""2010-03-25 Tor Arne Vestb\u00f8 <vestbo@webkit.org>82 expected_commit_message = """2010-03-25 Eric Seidel <eric@webkit.org> 84 83 85 84 Unreviewed build fix to un-break webkit-patch land. … … 89 88 90 89 * Scripts/webkitpy/common/checkout/api.py: import scm.CommitMessage 91 2010-03-25 Tor Arne Vestb\u00f8 <vestbo@webkit.org>90 2010-03-25 Eric Seidel <eric@webkit.org> 92 91 93 92 Unreviewed build fix to un-break webkit-patch land. … … 139 138 commitinfo = checkout.commit_info_for_revision(4) 140 139 self.assertEqual(commitinfo.bug_id(), 36629) 141 self.assertEqual(commitinfo.author_name(), u"Tor Arne Vestb\u00f8")142 self.assertEqual(commitinfo.author_email(), " vestbo@webkit.org")140 self.assertEqual(commitinfo.author_name(), "Eric Seidel") 141 self.assertEqual(commitinfo.author_email(), "eric@webkit.org") 143 142 self.assertEqual(commitinfo.reviewer_text(), None) 144 143 self.assertEqual(commitinfo.reviewer(), None) -
trunk/WebKitTools/Scripts/webkitpy/common/checkout/changelog.py
r57907 r57920 103 103 entry_lines = [] 104 104 # The first line should be a date line. 105 first_line = unicode(changelog_file.readline(), "utf-8")105 first_line = changelog_file.readline() 106 106 if not date_line_regexp.match(first_line): 107 107 return None … … 109 109 110 110 for line in changelog_file: 111 line = unicode(line, "utf-8")112 111 # If we've hit the next entry, return. 113 112 if date_line_regexp.match(line): … … 119 118 def latest_entry(self): 120 119 # ChangeLog files are always UTF-8, we read them in as such to support Reviewers with unicode in their names. 121 # We don't use codecs.open here to make the api for parse_latest_entry_from_file clearer. 122 # If we did, then it would be unclear as to whos reponsibility decoding of the file should be. 123 changelog_file = open(self.path, "r") 120 changelog_file = codecs.open(self.path, "r", "utf-8") 124 121 try: 125 122 return self.parse_latest_entry_from_file(changelog_file) -
trunk/WebKitTools/Scripts/webkitpy/common/checkout/changelog_unittest.py
r57907 r57920 88 88 89 89 def test_latest_entry_parse(self): 90 changelog_contents = u"%s\n%s" % (self._example_entry, self._example_changelog)91 changelog_file = StringIO(changelog_contents .encode("utf-8"))90 changelog_contents = "%s\n%s" % (self._example_entry, self._example_changelog) 91 changelog_file = StringIO(changelog_contents) 92 92 latest_entry = ChangeLog.parse_latest_entry_from_file(changelog_file) 93 93 self.assertEquals(latest_entry.contents(), self._example_entry) … … 122 122 123 123 def test_set_reviewer(self): 124 changelog_contents = u"%s\n%s" % (self._new_entry_boilerplate, self._example_changelog)124 changelog_contents = "%s\n%s" % (self._new_entry_boilerplate, self._example_changelog) 125 125 changelog_path = self._write_tmp_file_with_contents(changelog_contents) 126 126 reviewer_name = 'Test Reviewer' … … 170 170 171 171 def _assert_update_for_revert_output(self, args, expected_entry): 172 changelog_contents = u"%s\n%s" % (self._new_entry_boilerplate, self._example_changelog)172 changelog_contents = "%s\n%s" % (self._new_entry_boilerplate, self._example_changelog) 173 173 changelog_path = self._write_tmp_file_with_contents(changelog_contents) 174 174 changelog = ChangeLog(changelog_path) -
trunk/WebKitTools/Scripts/webkitpy/common/checkout/commitinfo.py
r57907 r57920 28 28 # 29 29 # WebKit's python module for holding information on a commit 30 31 import StringIO 30 32 31 33 from webkitpy.common.checkout.changelog import view_source_url -
trunk/WebKitTools/Scripts/webkitpy/common/checkout/scm.py
r57907 r57920 146 146 147 147 def strip_r_from_svn_revision(self, svn_revision): 148 match = re.match("^r(?P<svn_revision>\d+)", unicode(svn_revision))148 match = re.match("^r(?P<svn_revision>\d+)", svn_revision) 149 149 if (match): 150 150 return match.group('svn_revision') … … 345 345 def changed_files_for_revision(self, revision): 346 346 # As far as I can tell svn diff --summarize output looks just like svn status output. 347 status_command = ["svn", "diff", "--summarize", "-c", revision]347 status_command = ["svn", "diff", "--summarize", "-c", str(revision)] 348 348 return self.run_status_and_extract_filenames(status_command, self._status_regexp("ACDMR")) 349 349 … … 365 365 366 366 def committer_email_for_revision(self, revision): 367 return run_command(["svn", "propget", "svn:author", "--revprop", "-r", revision]).rstrip()367 return run_command(["svn", "propget", "svn:author", "--revprop", "-r", str(revision)]).rstrip() 368 368 369 369 def contents_at_revision(self, path, revision): 370 370 remote_path = "%s/%s" % (self._repository_url(), path) 371 return run_command(["svn", "cat", "-r", revision, remote_path])371 return run_command(["svn", "cat", "-r", str(revision), remote_path]) 372 372 373 373 def diff_for_revision(self, revision): 374 374 # FIXME: This should probably use cwd=self.checkout_root 375 return run_command(['svn', 'diff', '-c', revision])375 return run_command(['svn', 'diff', '-c', str(revision)]) 376 376 377 377 def _repository_url(self): … … 406 406 407 407 def svn_commit_log(self, svn_revision): 408 svn_revision = self.strip_r_from_svn_revision(s vn_revision)408 svn_revision = self.strip_r_from_svn_revision(str(svn_revision)) 409 409 return run_command(['svn', 'log', '--non-interactive', '--revision', svn_revision]); 410 410 -
trunk/WebKitTools/Scripts/webkitpy/common/checkout/scm_unittest.py
r57907 r57920 29 29 30 30 import base64 31 import codecs32 31 import getpass 33 32 import os … … 59 58 60 59 def write_into_file_at_path(file_path, contents): 61 file = codecs.open(file_path, "w", "utf-8")60 file = open(file_path, 'w') 62 61 file.write(contents) 63 62 file.close() 64 63 65 64 def read_from_path(file_path): 66 file = codecs.open(file_path, "r", "utf-8")65 file = open(file_path, 'r') 67 66 contents = file.read() 68 67 file.close() -
trunk/WebKitTools/Scripts/webkitpy/common/config/committers.py
r57918 r57920 240 240 Reviewer("Tim Omernick", "timo@apple.com"), 241 241 Reviewer("Timothy Hatcher", ["timothy@hatcher.name", "timothy@apple.com"], "xenon"), 242 Reviewer(u "Tor Arne Vestb\u00f8", "vestbo@webkit.org", "torarne"),242 Reviewer(u'Tor Arne Vestb\xf8', "vestbo@webkit.org", "torarne"), 243 243 Reviewer("Vicki Murley", "vicki@apple.com"), 244 244 Reviewer("Xan Lopez", ["xan.lopez@gmail.com", "xan@gnome.org", "xan@webkit.org"], "xan"), -
trunk/WebKitTools/Scripts/webkitpy/common/net/bugzilla.py
r57907 r57920 33 33 import os.path 34 34 import re 35 import StringIO36 35 import subprocess 37 36 … … 413 412 attachment[result_key] = flag['setter'] 414 413 415 def _string_contents(self, soup):416 # WebKit's bugzilla instance uses UTF-8.417 # BeautifulSoup always returns Unicode strings, however418 # the .string method returns a (unicode) NavigableString.419 # NavigableString can confuse other parts of the code, so we420 # convert from NavigableString to a real unicode() object using unicode().421 return unicode(soup.string)422 423 414 def _parse_attachment_element(self, element, bug_id): 424 425 415 attachment = {} 426 416 attachment['bug_id'] = bug_id … … 430 420 # FIXME: No need to parse out the url here. 431 421 attachment['url'] = self.attachment_url_for_id(attachment['id']) 432 attachment['name'] = self._string_contents(element.find('desc'))433 attachment['attacher_email'] = s elf._string_contents(element.find('attacher'))434 attachment['type'] = s elf._string_contents(element.find('type'))422 attachment['name'] = unicode(element.find('desc').string) 423 attachment['attacher_email'] = str(element.find('attacher').string) 424 attachment['type'] = str(element.find('type').string) 435 425 self._parse_attachment_flag( 436 426 element, 'review', attachment, 'reviewer_email') … … 443 433 bug = {} 444 434 bug["id"] = int(soup.find("bug_id").string) 445 bug["title"] = self._string_contents(soup.find("short_desc"))446 bug["reporter_email"] = s elf._string_contents(soup.find("reporter"))447 bug["assigned_to_email"] = s elf._string_contents(soup.find("assigned_to"))448 bug["cc_emails"] = [s elf._string_contents(element)435 bug["title"] = unicode(soup.find("short_desc").string) 436 bug["reporter_email"] = str(soup.find("reporter").string) 437 bug["assigned_to_email"] = str(soup.find("assigned_to").string) 438 bug["cc_emails"] = [str(element.string) 449 439 for element in soup.findAll('cc')] 450 440 bug["attachments"] = [self._parse_attachment_element(element, bug["id"]) for element in soup.findAll('attachment')] … … 543 533 def _fill_attachment_form(self, 544 534 description, 545 diff,535 patch_file_object, 546 536 comment_text=None, 547 537 mark_for_review=False, … … 563 553 else: 564 554 patch_name ="%s.patch" % timestamp() 565 566 # ClientForm expects a file-like object567 patch_file_object = StringIO.StringIO(diff.encode("utf-8"))568 555 self.browser.add_file(patch_file_object, 569 556 "text/plain", … … 573 560 def add_patch_to_bug(self, 574 561 bug_id, 575 diff,562 patch_file_object, 576 563 description, 577 564 comment_text=None, … … 592 579 self.bug_server_url, bug_id)) 593 580 self.browser.select_form(name="entryform") 594 595 581 self._fill_attachment_form(description, 596 diff,582 patch_file_object, 597 583 mark_for_review=mark_for_review, 598 584 mark_for_commit_queue=mark_for_commit_queue, … … 627 613 bug_description, 628 614 component=None, 629 diff=None,615 patch_file_object=None, 630 616 patch_description=None, 631 617 cc=None, … … 652 638 self.browser["cc"] = cc 653 639 if blocked: 654 self.browser["blocked"] = unicode(blocked)640 self.browser["blocked"] = str(blocked) 655 641 self.browser["short_desc"] = bug_title 656 642 self.browser["comment"] = bug_description 657 643 658 if diff:644 if patch_file_object: 659 645 self._fill_attachment_form( 660 646 patch_description, 661 diff,647 patch_file_object, 662 648 mark_for_review=mark_for_review, 663 649 mark_for_commit_queue=mark_for_commit_queue) -
trunk/WebKitTools/Scripts/webkitpy/common/net/buildbot.py
r57907 r57920 45 45 class Builder(object): 46 46 def __init__(self, name, buildbot): 47 self._name = name47 self._name = unicode(name) 48 48 self._buildbot = buildbot 49 49 self._builds_cache = {} … … 224 224 tables = BeautifulSoup(page).findAll("table") 225 225 for table in tables: 226 table_title = unicode(table.findPreviousSibling("p").string)226 table_title = table.findPreviousSibling("p").string 227 227 if table_title not in cls.expected_keys: 228 228 # This Exception should only ever be hit if run-webkit-tests changes its results.html format. 229 raise Exception("Unhandled title: %s" % table_title)229 raise Exception("Unhandled title: %s" % str(table_title)) 230 230 # We might want to translate table titles into identifiers before storing. 231 parsed_results[table_title] = [ unicode(row.find("a").string)for row in table.findAll("tr")]231 parsed_results[table_title] = [row.find("a").string for row in table.findAll("tr")] 232 232 233 233 return parsed_results … … 362 362 # First cell is the name 363 363 name_link = status_cells[0].find('a') 364 builder["name"] = unicode(name_link.string)364 builder["name"] = name_link.string 365 365 366 366 self._parse_last_build_cell(builder, status_cells[1]) … … 411 411 412 412 def _parse_twisted_file_row(self, file_row): 413 string_or_empty = lambda s oup: unicode(soup.string) if soup.string else u""413 string_or_empty = lambda string: str(string) if string else "" 414 414 file_cells = file_row.findAll('td') 415 415 return { 416 "filename" : string_or_empty(file_cells[0].find("a")),417 "size" : string_or_empty(file_cells[1]),418 "type" : string_or_empty(file_cells[2]),419 "encoding" : string_or_empty(file_cells[3]),416 "filename" : string_or_empty(file_cells[0].find("a").string), 417 "size" : string_or_empty(file_cells[1].string), 418 "type" : string_or_empty(file_cells[2].string), 419 "encoding" : string_or_empty(file_cells[3].string), 420 420 } 421 421 -
trunk/WebKitTools/Scripts/webkitpy/common/net/buildbot_unittest.py
r57907 r57920 52 52 def setUp(self): 53 53 self.buildbot = BuildBot() 54 self.builder = Builder( u"Test Builder \u2661", self.buildbot)54 self.builder = Builder("Test Builder", self.buildbot) 55 55 self._install_fetch_build(lambda build_number: ["test1", "test2"]) 56 56 -
trunk/WebKitTools/Scripts/webkitpy/common/net/statusserver.py
r57907 r57920 53 53 return 54 54 if patch.bug_id(): 55 self.browser["bug_id"] = unicode(patch.bug_id())55 self.browser["bug_id"] = str(patch.bug_id()) 56 56 if patch.id(): 57 self.browser["patch_id"] = unicode(patch.id())57 self.browser["patch_id"] = str(patch.id()) 58 58 59 59 def _add_results_file(self, results_file): … … 80 80 self.browser.open(update_svn_revision_url) 81 81 self.browser.select_form(name="update_svn_revision") 82 self.browser["number"] = unicode(svn_revision_number)82 self.browser["number"] = str(svn_revision_number) 83 83 self.browser["broken_bot"] = broken_bot 84 84 return self.browser.submit().read() -
trunk/WebKitTools/Scripts/webkitpy/common/prettypatch.py
r57907 r57920 39 39 pretty_diff = self.pretty_diff(diff) 40 40 diff_file = tempfile.NamedTemporaryFile(suffix=".html") 41 diff_file.write(pretty_diff .encode("utf-8"))41 diff_file.write(pretty_diff) 42 42 diff_file.flush() 43 43 return diff_file -
trunk/WebKitTools/Scripts/webkitpy/common/system/autoinstall.py
r57907 r57920 125 125 file = open(path, "w") 126 126 try: 127 file.write(text) # FIXME: What's the encoding of this file?127 file.write(text) 128 128 finally: 129 129 file.close() -
trunk/WebKitTools/Scripts/webkitpy/common/system/deprecated_logging.py
r57907 r57920 46 46 self.files = files 47 47 48 # Callers should pass an already encoded string for writing. 49 def write(self, bytes): 48 def write(self, string): 50 49 for file in self.files: 51 file.write( bytes)50 file.write(string) 52 51 53 52 class OutputTee: -
trunk/WebKitTools/Scripts/webkitpy/common/system/executive.py
r57907 r57920 89 89 90 90 def _run_command_with_teed_output(self, args, teed_output): 91 args = map(unicode, args) # Popen will throw an exception if args are non-strings (like int())92 91 child_process = subprocess.Popen(args, 93 92 stdout=subprocess.PIPE, … … 101 100 if output_line == "" and child_process.poll() != None: 102 101 return child_process.poll() 103 # We assume that the child process wrote to us in utf-8,104 # so no re-encoding is necessary before writing here.105 102 teed_output.write(output_line) 106 103 107 # FIXME: Remove this deprecated method and move callers to run_command. 108 # FIXME: This method is a hack to allow running command which both 109 # capture their output and print out to stdin. Useful for things 110 # like "build-webkit" where we want to display to the user that we're building 111 # but still have the output to stuff into a log file. 112 def run_and_throw_if_fail(self, args, quiet=False, decode_output=True): 104 def run_and_throw_if_fail(self, args, quiet=False): 113 105 # Cache the child's output locally so it can be used for error reports. 114 106 child_out_file = StringIO.StringIO() … … 124 116 child_output = child_out_file.getvalue() 125 117 child_out_file.close() 126 127 # We assume the child process output utf-8128 if decode_output:129 child_output = child_output.decode("utf-8")130 118 131 119 if exit_code: … … 158 146 # using Cygwin, it worked fine. We should investigate whether 159 147 # we need this platform specific code here. 160 subprocess.call(('taskkill.exe', '/f', '/pid', unicode(pid)),148 subprocess.call(('taskkill.exe', '/f', '/pid', str(pid)), 161 149 stdin=open(os.devnull, 'r'), 162 150 stdout=subprocess.PIPE, … … 176 164 pass 177 165 178 def _compute_stdin(self, input): 179 """Returns (stdin, string_to_communicate)""" 180 if not input: 181 return (None, None) 182 if hasattr(input, "read"): # Check if the input is a file. 183 return (input, None) # Assume the file is in the right encoding. 184 185 # Popen in Python 2.5 and before does not automatically encode unicode objects. 186 # http://bugs.python.org/issue5290 187 # See https://bugs.webkit.org/show_bug.cgi?id=37528 188 # for an example of a regresion caused by passing a unicode string directly. 189 # FIXME: We may need to encode differently on different platforms. 190 if isinstance(input, unicode): 191 input = input.encode("utf-8") 192 return (subprocess.PIPE, input) 193 194 # FIXME: run_and_throw_if_fail should be merged into this method. 166 # FIXME: This should be merged with run_and_throw_if_fail 167 195 168 def run_command(self, 196 169 args, … … 199 172 error_handler=None, 200 173 return_exit_code=False, 201 return_stderr=True, 202 decode_output=True): 203 args = map(unicode, args) # Popen will throw an exception if args are non-strings (like int()) 204 stdin, string_to_communicate = self._compute_stdin(input) 205 stderr = subprocess.STDOUT if return_stderr else None 174 return_stderr=True): 175 if hasattr(input, 'read'): # Check if the input is a file. 176 stdin = input 177 string_to_communicate = None 178 else: 179 stdin = None 180 if input: 181 stdin = subprocess.PIPE 182 # string_to_communicate seems to need to be a str for proper 183 # communication with shell commands. 184 # See https://bugs.webkit.org/show_bug.cgi?id=37528 185 # For an example of a regresion caused by passing a unicode string through. 186 string_to_communicate = str(input) 187 if return_stderr: 188 stderr = subprocess.STDOUT 189 else: 190 stderr = None 206 191 207 192 process = subprocess.Popen(args, … … 211 196 cwd=cwd) 212 197 output = process.communicate(string_to_communicate)[0] 213 # run_command automatically decodes to unicode() unless explicitly told not to.214 if decode_output:215 output = output.decode("utf-8")216 198 exit_code = process.wait() 217 199 -
trunk/WebKitTools/Scripts/webkitpy/common/system/executive_unittest.py
r57907 r57920 1 # Copyright (C) 20 10Google Inc. All rights reserved.1 # Copyright (C) 2009 Google Inc. All rights reserved. 2 2 # Copyright (C) 2009 Daniel Bates (dbates@intudata.com). All rights reserved. 3 3 # … … 32 32 from webkitpy.common.system.executive import Executive, run_command 33 33 34 35 34 class ExecutiveTest(unittest.TestCase): 36 35 … … 40 39 self.failUnlessRaises(OSError, run_bad_command) 41 40 42 def test_run_command_with_unicode(self): 43 """Validate that it is safe to pass unicode() objects 44 to Executive.run* methods, and they will return unicode() 45 objects by default unless decode_output=False""" 46 executive = Executive() 47 unicode_tor = u"WebKit \u2661 Tor Arne Vestb\u00F8!" 48 utf8_tor = unicode_tor.encode("utf-8") 49 50 output = executive.run_command(["cat"], input=unicode_tor) 51 self.assertEquals(output, unicode_tor) 52 53 output = executive.run_command(["echo", "-n", unicode_tor]) 54 self.assertEquals(output, unicode_tor) 55 56 output = executive.run_command(["echo", "-n", unicode_tor], decode_output=False) 57 self.assertEquals(output, utf8_tor) 58 59 # FIXME: We should only have one run* method to test 60 output = executive.run_and_throw_if_fail(["echo", "-n", unicode_tor], quiet=True) 61 self.assertEquals(output, unicode_tor) 62 63 output = executive.run_and_throw_if_fail(["echo", "-n", unicode_tor], quiet=True, decode_output=False) 64 self.assertEquals(output, utf8_tor) 41 if __name__ == '__main__': 42 unittest.main() -
trunk/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py
r57907 r57920 36 36 """ 37 37 38 import codecs39 38 import copy 40 39 import logging … … 288 287 tests_run_filename = os.path.join(self._options.results_directory, 289 288 "tests_run.txt") 290 tests_run_file = codecs.open(tests_run_filename, "a", "utf-8")289 tests_run_file = open(tests_run_filename, "a") 291 290 292 291 while True: -
trunk/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py
r57907 r57920 28 28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 29 30 import codecs31 30 import logging 32 31 import os … … 120 119 json = self._get_json() 121 120 if json: 122 results_file = codecs.open(self._results_file_path, "w", "utf-8")121 results_file = open(self._results_file_path, "w") 123 122 results_file.write(json) 124 123 results_file.close() -
trunk/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/metered_stream.py
r57907 r57920 61 61 self._last_update = "" 62 62 63 # FIXME: Does this take a string (unicode) or an array of bytes (str)?64 # If it takes a string, it needs to call txt.encode("utf-8")65 63 def write(self, txt): 66 64 """Write to the stream, overwriting and resetting the meter.""" … … 89 87 self._write(str) 90 88 91 # FIXME: Does this take a string (unicode) or an array of bytes (str)?92 # If it takes a string, it needs to call txt.encode("utf-8")93 89 def update(self, str): 94 90 """ -
trunk/WebKitTools/Scripts/webkitpy/layout_tests/port/mac_unittest.py
r57907 r57920 41 41 self.assertEqual(relative_paths, ['LayoutTests/platform/mac-leopard/Skipped', 'LayoutTests/platform/mac/Skipped']) 42 42 43 example_skipped_file = u"""43 example_skipped_file = """ 44 44 # <rdar://problem/5647952> fast/events/mouseout-on-window.html needs mac DRT to issue mouse out events 45 45 fast/events/mouseout-on-window.html … … 59 59 def test_skipped_file_paths(self): 60 60 port = mac.MacPort() 61 skipped_file = StringIO.StringIO(self.example_skipped_file .encode("utf-8"))61 skipped_file = StringIO.StringIO(self.example_skipped_file) 62 62 self.assertEqual(port._tests_from_skipped_file(skipped_file), self.example_skipped_tests) 63 63 -
trunk/WebKitTools/Scripts/webkitpy/tool/commands/earlywarningsystem.py
r57907 r57920 26 26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 29 from StringIO import StringIO 28 30 29 31 from webkitpy.tool.commands.queues import AbstractReviewQueue -
trunk/WebKitTools/Scripts/webkitpy/tool/commands/queues.py
r57907 r57920 72 72 webkit_patch_args = [self.tool.path()] 73 73 # FIXME: This is a hack, we should have a more general way to pass global options. 74 webkit_patch_args.append("--status-host") 75 webkit_patch_args.append(self.tool.status_server.host) 76 webkit_patch_args.extend(args) 74 webkit_patch_args += ["--status-host=%s" % self.tool.status_server.host] 75 webkit_patch_args += map(str, args) 77 76 return self.tool.executive.run_and_throw_if_fail(webkit_patch_args) 78 77 … … 125 124 message = "Error: %s" % message 126 125 output = script_error.message_with_output(output_limit=1024*1024) # 1MB 127 return tool.status_server.update_status(cls.name, message, state["patch"], StringIO(output .encode("utf-8")))126 return tool.status_server.update_status(cls.name, message, state["patch"], StringIO(output)) 128 127 129 128 -
trunk/WebKitTools/Scripts/webkitpy/tool/commands/queues_unittest.py
r57907 r57920 76 76 77 77 queue.run_webkit_patch(run_args) 78 expected_run_args = ["echo", "--status-host ", "example.com"] + run_args78 expected_run_args = ["echo", "--status-host=example.com"] + map(str, run_args) 79 79 tool.executive.run_and_throw_if_fail.assert_called_with(expected_run_args) 80 80 … … 151 151 1 patch in commit-queue [106] 152 152 """, 153 "process_work_item": "MOCK run_and_throw_if_fail: ['echo', '--status-host ', 'example.com', 'land-attachment', '--force-clean', '--build', '--test', '--non-interactive', '--ignore-builders', '--build-style=both', '--quiet', 76543]\n",153 "process_work_item": "MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'land-attachment', '--force-clean', '--build', '--test', '--non-interactive', '--ignore-builders', '--build-style=both', '--quiet', '76543']\n", 154 154 } 155 155 self.assert_queue_outputs(CommitQueue(), tool=tool, work_item=rollout_patch, expected_stderr=expected_stderr) -
trunk/WebKitTools/Scripts/webkitpy/tool/commands/upload.py
r57907 r57920 31 31 import os 32 32 import re 33 import StringIO 33 34 import sys 34 35 … … 260 261 return comment_text 261 262 263 def _diff_file_for_commit(self, tool, commit_id): 264 diff = tool.scm().create_patch_from_local_commit(commit_id) 265 return StringIO.StringIO(diff) # add_patch_to_bug expects a file-like object 266 262 267 def execute(self, options, args, tool): 263 268 commit_ids = tool.scm().commit_ids_from_commitish_arguments(args) … … 280 285 have_obsoleted_patches.add(bug_id) 281 286 282 diff = tool.scm().create_patch_from_local_commit(commit_id)287 diff_file = self._diff_file_for_commit(tool, commit_id) 283 288 description = options.description or commit_message.description(lstrip=True, strip_url=True) 284 289 comment_text = self._comment_text_for_commit(options, commit_message, tool, commit_id) 285 tool.bugs.add_patch_to_bug(bug_id, diff , description, comment_text, mark_for_review=options.review, mark_for_commit_queue=options.request_commit)290 tool.bugs.add_patch_to_bug(bug_id, diff_file, description, comment_text, mark_for_review=options.review, mark_for_commit_queue=options.request_commit) 286 291 287 292 … … 400 405 401 406 diff = tool.scm().create_patch_from_local_commit(commit_id) 402 bug_id = tool.bugs.create_bug(bug_title, comment_text, options.component, diff, "Patch", cc=options.cc, mark_for_review=options.review, mark_for_commit_queue=options.request_commit) 407 diff_file = StringIO.StringIO(diff) # create_bug expects a file-like object 408 bug_id = tool.bugs.create_bug(bug_title, comment_text, options.component, diff_file, "Patch", cc=options.cc, mark_for_review=options.review, mark_for_commit_queue=options.request_commit) 403 409 404 410 if bug_id and len(commit_ids) > 1: … … 419 425 420 426 diff = tool.scm().create_patch() 421 bug_id = tool.bugs.create_bug(bug_title, comment_text, options.component, diff, "Patch", cc=options.cc, mark_for_review=options.review, mark_for_commit_queue=options.request_commit) 427 diff_file = StringIO.StringIO(diff) # create_bug expects a file-like object 428 bug_id = tool.bugs.create_bug(bug_title, comment_text, options.component, diff_file, "Patch", cc=options.cc, mark_for_review=options.review, mark_for_commit_queue=options.request_commit) 422 429 423 430 def prompt_for_bug_title_and_comment(self): -
trunk/WebKitTools/Scripts/webkitpy/tool/mocktool.py
r57907 r57920 261 261 bug_description, 262 262 component=None, 263 diff=None,263 patch_file_object=None, 264 264 patch_description=None, 265 265 cc=None, … … 300 300 def add_patch_to_bug(self, 301 301 bug_id, 302 diff,302 patch_file_object, 303 303 description, 304 304 comment_text=None, -
trunk/WebKitTools/Scripts/webkitpy/tool/steps/abstractstep.py
r57907 r57920 40 40 log("Running %s" % script_name) 41 41 # FIXME: This should use self.port() 42 self._tool.executive.run_and_throw_if_fail( [port.script_path(script_name)], quiet)42 self._tool.executive.run_and_throw_if_fail(port.script_path(script_name), quiet) 43 43 44 44 # FIXME: The port should live on the tool. -
trunk/WebKitTools/Scripts/webkitpy/tool/steps/postdiff.py
r57907 r57920 27 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 28 29 import StringIO 30 29 31 from webkitpy.tool.steps.abstractstep import AbstractStep 30 32 from webkitpy.tool.steps.options import Options … … 43 45 def run(self, state): 44 46 diff = self.cached_lookup(state, "diff") 47 diff_file = StringIO.StringIO(diff) # add_patch_to_bug expects a file-like object 45 48 description = self._options.description or "Patch" 46 49 comment_text = None … … 50 53 if codereview_issue: 51 54 description += "-%s" % state["codereview_issue"] 52 self._tool.bugs.add_patch_to_bug(state["bug_id"], diff , description, comment_text=comment_text, mark_for_review=self._options.review, mark_for_commit_queue=self._options.request_commit)55 self._tool.bugs.add_patch_to_bug(state["bug_id"], diff_file, description, comment_text=comment_text, mark_for_review=self._options.review, mark_for_commit_queue=self._options.request_commit) 53 56 if self._options.open_bug: 54 57 self._tool.user.open_url(self._tool.bugs.bug_url_for_bug_id(state["bug_id"])) -
trunk/WebKitTools/Scripts/webkitpy/tool/steps/postdiffforcommit.py
r57907 r57920 27 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 28 29 import StringIO 30 29 31 from webkitpy.tool.steps.abstractstep import AbstractStep 30 32 … … 34 36 self._tool.bugs.add_patch_to_bug( 35 37 state["bug_id"], 36 self.cached_lookup(state, "diff"),38 StringIO.StringIO(self.cached_lookup(state, "diff")), 37 39 "Patch for landing", 38 40 mark_for_review=False, -
trunk/WebKitTools/Scripts/webkitpy/tool/steps/postdiffforrevert.py
r57907 r57920 27 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 28 29 import StringIO 30 29 31 from webkitpy.common.net.bugzilla import Attachment 30 32 from webkitpy.tool.steps.abstractstep import AbstractStep … … 43 45 self._tool.bugs.add_patch_to_bug( 44 46 state["bug_id"], 45 self.cached_lookup(state, "diff"),47 StringIO.StringIO(self.cached_lookup(state, "diff")), 46 48 "%s%s" % (Attachment.rollout_preamble, state["revision"]), 47 49 comment_text=comment_text, -
trunk/WebKitTools/Scripts/webkitpy/tool/steps/steps_unittest.py
r57907 r57920 49 49 options = Mock() 50 50 options.update = True 51 expected_stderr = "Updating working directory\n" 52 OutputCapture().assert_outputs(self, self._run_step, [Update, options], expected_stderr=expected_stderr) 51 self._run_step(Update, options) 53 52 54 53 def test_prompt_for_bug_or_title_step(self):
Note: See TracChangeset
for help on using the changeset viewer.