summaryrefslogtreecommitdiffstats
path: root/Tools/Scripts/webkitpy/tool
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/Scripts/webkitpy/tool')
-rw-r--r--Tools/Scripts/webkitpy/tool/bot/flakytestreporter.py12
-rw-r--r--Tools/Scripts/webkitpy/tool/bot/irc_command.py19
-rw-r--r--Tools/Scripts/webkitpy/tool/bot/irc_command_unittest.py13
-rw-r--r--Tools/Scripts/webkitpy/tool/bot/sheriffircbot_unittest.py2
-rw-r--r--Tools/Scripts/webkitpy/tool/commands/rebaselineserver.py8
-rw-r--r--Tools/Scripts/webkitpy/tool/steps/preparechangelog.py1
6 files changed, 43 insertions, 12 deletions
diff --git a/Tools/Scripts/webkitpy/tool/bot/flakytestreporter.py b/Tools/Scripts/webkitpy/tool/bot/flakytestreporter.py
index 270a656..bec593b 100644
--- a/Tools/Scripts/webkitpy/tool/bot/flakytestreporter.py
+++ b/Tools/Scripts/webkitpy/tool/bot/flakytestreporter.py
@@ -158,22 +158,26 @@ If you would like to track this test fix with another bug, please close this bug
return archived_path
return None
- def _attach_failure_diff(self, flake_bug_id, flaky_test, results_archive):
+ def _attach_failure_diff(self, flake_bug_id, flaky_test, results_archive_zip):
results_diff_path = self._results_diff_path_for_test(flaky_test)
# Check to make sure that the path makes sense.
# Since we're not actually getting this path from the results.html
# there is a chance it's wrong.
bot_id = self._tool.status_server.bot_id or "bot"
- archive_path = self._find_in_archive(results_diff_path, results_archive)
+ archive_path = self._find_in_archive(results_diff_path, results_archive_zip)
if archive_path:
- results_diff = results_archive.read(archive_path)
+ results_diff = results_archive_zip.read(archive_path)
description = "Failure diff from %s" % bot_id
self._tool.bugs.add_attachment_to_bug(flake_bug_id, results_diff, description, filename="failure.diff")
else:
_log.warn("%s does not exist in results archive, uploading entire archive." % results_diff_path)
description = "Archive of layout-test-results from %s" % bot_id
# results_archive is a ZipFile object, grab the File object (.fp) to pass to Mechanize for uploading.
- self._tool.bugs.add_attachment_to_bug(flake_bug_id, results_archive.fp, description, filename="layout-test-results.zip")
+ results_archive_file = results_archive_zip.fp
+ # Rewind the file object to start (since Mechanize won't do that automatically)
+ # See https://bugs.webkit.org/show_bug.cgi?id=54593
+ results_archive_file.seek(0)
+ self._tool.bugs.add_attachment_to_bug(flake_bug_id, results_archive_file, description, filename="layout-test-results.zip")
def report_flaky_tests(self, patch, flaky_test_results, results_archive):
message = "The %s encountered the following flaky tests while processing attachment %s:\n\n" % (self._bot_name, patch.id())
diff --git a/Tools/Scripts/webkitpy/tool/bot/irc_command.py b/Tools/Scripts/webkitpy/tool/bot/irc_command.py
index 67a1c44..af109e4 100644
--- a/Tools/Scripts/webkitpy/tool/bot/irc_command.py
+++ b/Tools/Scripts/webkitpy/tool/bot/irc_command.py
@@ -30,6 +30,7 @@ import random
from webkitpy.common.config import irc as config_irc
from webkitpy.common.config import urls
+from webkitpy.common.config.committers import CommitterList
from webkitpy.common.net.bugzilla import parse_bug_id
from webkitpy.common.system.executive import ScriptError
from webkitpy.tool.bot.queueengine import TerminateQueue
@@ -109,6 +110,19 @@ class Hi(IRCCommand):
return random.choice(quips)
+class Whois(IRCCommand):
+ def execute(self, nick, args, tool, sheriff):
+ if len(args) != 1:
+ return "%s: Usage: BUGZILLA_EMAIL" % nick
+ email = args[0]
+ committer = CommitterList().committer_by_email(email)
+ if not committer:
+ return "%s: Sorry, I don't know %s. Maybe you could introduce me?" % (nick, email)
+ if not committer.irc_nickname:
+ return "%s: %s hasn't told me their nick. Boo hoo :-(" % (nick, email)
+ return "%s: %s is %s. Why do you ask?" % (nick, email, committer.irc_nickname)
+
+
class Eliza(IRCCommand):
therapist = None
@@ -123,9 +137,10 @@ class Eliza(IRCCommand):
# FIXME: Lame. We should have an auto-registering CommandCenter.
commands = {
+ "help": Help,
+ "hi": Hi,
"last-green-revision": LastGreenRevision,
"restart": Restart,
"rollout": Rollout,
- "help": Help,
- "hi": Hi,
+ "whois": Whois,
}
diff --git a/Tools/Scripts/webkitpy/tool/bot/irc_command_unittest.py b/Tools/Scripts/webkitpy/tool/bot/irc_command_unittest.py
index 7aeb6a0..f3c63ec 100644
--- a/Tools/Scripts/webkitpy/tool/bot/irc_command_unittest.py
+++ b/Tools/Scripts/webkitpy/tool/bot/irc_command_unittest.py
@@ -36,3 +36,16 @@ class IRCCommandTest(unittest.TestCase):
eliza = Eliza()
eliza.execute("tom", "hi", None, None)
eliza.execute("tom", "bye", None, None)
+
+ def test_whois(self):
+ whois = Whois()
+ self.assertEquals("tom: Usage: BUGZILLA_EMAIL",
+ whois.execute("tom", [], None, None))
+ self.assertEquals("tom: Usage: BUGZILLA_EMAIL",
+ whois.execute("tom", ["Adam", "Barth"], None, None))
+ self.assertEquals("tom: Sorry, I don't know unknown@example.com. Maybe you could introduce me?",
+ whois.execute("tom", ["unknown@example.com"], None, None))
+ self.assertEquals("tom: tonyg@chromium.org is tonyg-cr. Why do you ask?",
+ whois.execute("tom", ["tonyg@chromium.org"], None, None))
+ self.assertEquals("tom: vicki@apple.com hasn't told me their nick. Boo hoo :-(",
+ whois.execute("tom", ["vicki@apple.com"], None, None))
diff --git a/Tools/Scripts/webkitpy/tool/bot/sheriffircbot_unittest.py b/Tools/Scripts/webkitpy/tool/bot/sheriffircbot_unittest.py
index ccb8ac2..5368ca4 100644
--- a/Tools/Scripts/webkitpy/tool/bot/sheriffircbot_unittest.py
+++ b/Tools/Scripts/webkitpy/tool/bot/sheriffircbot_unittest.py
@@ -51,7 +51,7 @@ class SheriffIRCBotTest(unittest.TestCase):
OutputCapture().assert_outputs(self, run, args=["hi"], expected_stderr=expected_stderr)
def test_help(self):
- expected_stderr = "MOCK: irc.post: mock_nick: Available commands: rollout, hi, help, restart, last-green-revision\n"
+ expected_stderr = "MOCK: irc.post: mock_nick: Available commands: whois, hi, last-green-revision, rollout, restart, help\n"
OutputCapture().assert_outputs(self, run, args=["help"], expected_stderr=expected_stderr)
def test_lgr(self):
diff --git a/Tools/Scripts/webkitpy/tool/commands/rebaselineserver.py b/Tools/Scripts/webkitpy/tool/commands/rebaselineserver.py
index 56780b5..c79d790 100644
--- a/Tools/Scripts/webkitpy/tool/commands/rebaselineserver.py
+++ b/Tools/Scripts/webkitpy/tool/commands/rebaselineserver.py
@@ -47,6 +47,7 @@ from optparse import make_option
from wsgiref.handlers import format_date_time
from webkitpy.common import system
+from webkitpy.layout_tests.layout_package import json_results_generator
from webkitpy.layout_tests.port import factory
from webkitpy.layout_tests.port.webkit import WebKitPort
from webkitpy.tool.multicommandtool import AbstractDeclarativeCommand
@@ -414,11 +415,8 @@ class RebaselineServer(AbstractDeclarativeCommand):
scm.add = no_op_add
print 'Parsing unexpected_results.json...'
- results_json_path = filesystem.join(
- results_directory, 'unexpected_results.json')
- with codecs.open(results_json_path, "r") as results_json_file:
- results_json_file = file(results_json_path)
- results_json = simplejson.load(results_json_file)
+ results_json_path = filesystem.join(results_directory, 'unexpected_results.json')
+ results_json = json_results_generator.load_json(filesystem, results_json_path)
port = factory.get()
layout_tests_directory = port.layout_tests_dir()
diff --git a/Tools/Scripts/webkitpy/tool/steps/preparechangelog.py b/Tools/Scripts/webkitpy/tool/steps/preparechangelog.py
index 392cd32..17e996c 100644
--- a/Tools/Scripts/webkitpy/tool/steps/preparechangelog.py
+++ b/Tools/Scripts/webkitpy/tool/steps/preparechangelog.py
@@ -64,6 +64,7 @@ class PrepareChangeLog(AbstractStep):
args = [self._tool.port().script_path("prepare-ChangeLog")]
if state.get("bug_id"):
args.append("--bug=%s" % state["bug_id"])
+ args.append("--description=%s" % self._tool.bugs.fetch_bug(state["bug_id"]).title())
if self._options.email:
args.append("--email=%s" % self._options.email)