2009-11-21 Eric Seidel <eric@webkit.org>
authoreric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 21 Nov 2009 15:50:16 +0000 (15:50 +0000)
committereric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 21 Nov 2009 15:50:16 +0000 (15:50 +0000)
        Reviewed by Adam Barth.

        commit-queue fails to run with "permissions error" due to bad bugzilla-tool path
        https://bugs.webkit.org/show_bug.cgi?id=31767

        What we really want to test is BugzillaTool.path() instead of TrivialTool.path().
        Since we don't have a good way to test BugzillaTool pieces, I've
        left out a test for now.

        * Scripts/bugzilla-tool:
         - Add a path() implementation to expose bugzilla-tool's __file__ path to commit-queue.
        * Scripts/modules/commands/queues.py:
         - Use tool.path() instead of __file__.
        * Scripts/modules/multicommandtool.py:
         - Add a new path() method to MultiComandTool.
        * Scripts/modules/multicommandtool_unittest.py:
         - Provide a path() method.  Little point in testing this mock implementation.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@51283 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKitTools/ChangeLog
WebKitTools/Scripts/bugzilla-tool
WebKitTools/Scripts/modules/commands/queues.py
WebKitTools/Scripts/modules/multicommandtool.py
WebKitTools/Scripts/modules/multicommandtool_unittest.py

index 5391bb36009a473469b0867a1e7d63031fba45f3..c897371e4244b3e3d149a0f6ade337c621bd3295 100644 (file)
@@ -1,3 +1,23 @@
+2009-11-21  Eric Seidel  <eric@webkit.org>
+
+        Reviewed by Adam Barth.
+
+        commit-queue fails to run with "permissions error" due to bad bugzilla-tool path
+        https://bugs.webkit.org/show_bug.cgi?id=31767
+
+        What we really want to test is BugzillaTool.path() instead of TrivialTool.path().
+        Since we don't have a good way to test BugzillaTool pieces, I've
+        left out a test for now.
+
+        * Scripts/bugzilla-tool:
+         - Add a path() implementation to expose bugzilla-tool's __file__ path to commit-queue.
+        * Scripts/modules/commands/queues.py:
+         - Use tool.path() instead of __file__.
+        * Scripts/modules/multicommandtool.py:
+         - Add a new path() method to MultiComandTool.
+        * Scripts/modules/multicommandtool_unittest.py:
+         - Provide a path() method.  Little point in testing this mock implementation.
+
 2009-11-21  Adam Barth  <abarth@webkit.org>
 
         Unreviewed "build" fix.  Turns out I was testing the wrong copy of
index 275e1f190ae0c72c14e285949e9fcb29ca76aad7..3a48c5b69e433b003b063a254f8e0c7e39131a6c 100755 (executable)
@@ -72,6 +72,9 @@ class BugzillaTool(MultiCommandTool):
 
         return self.cached_scm
 
+    def path(self):
+        return __file__
+
     def should_show_command_help(self, command):
         if command.requires_local_commits:
             return self.scm().supports_local_commits()
index 23fc07dacd01d9f9a9d2bddf054260cebc97cf62..fee7f6d7aad81fe37ebecb5262a6bf857a95530e 100644 (file)
@@ -94,10 +94,8 @@ class AbstractQueue(Command, WorkQueueDelegate):
     def handle_unexpected_error(self, work_item, message):
         raise NotImplementedError, "subclasses must implement"
 
-    @staticmethod
-    def run_bugzilla_tool(args):
-        bugzilla_tool_path = __file__ # re-execute this script
-        bugzilla_tool_args = [bugzilla_tool_path] + args
+    def run_bugzilla_tool(self, args):
+        bugzilla_tool_args = [tool.path()] + args
         WebKitLandingScripts.run_and_throw_if_fail(bugzilla_tool_args)
 
     def log_progress(self, patch_ids):
index fe3c2d4f8ef9658337afbc8b1791aa32eee5ed06..90148b28cb469a5a6876b993e59aeac2cacd378e 100644 (file)
@@ -154,13 +154,15 @@ class MultiCommandTool(object):
                 return command
         return None
 
+    def path(self):
+        raise NotImplementedError, "subclasses must implement"
+
     def should_show_command_help(self, command):
         raise NotImplementedError, "subclasses must implement"
 
     def should_execute_command(self, command):
         raise NotImplementedError, "subclasses must implement"
 
-
     def main(self, argv=sys.argv):
         (global_args, command_name, args_after_command_name) = self._split_args(argv[1:])
 
index 33cfdf2abf24cb9b297750b58248dd1cf42ae878..dbae909fe3370bd7136b905e6d5260a3134d5c56 100644 (file)
@@ -55,6 +55,9 @@ class TrivialTool(MultiCommandTool):
     def __init__(self, commands=None):
         MultiCommandTool.__init__(self, commands)
 
+    def path():
+        return __file__
+
     def should_show_command_help(self, command):
         return True