Title: [277615] trunk/Tools
Revision
277615
Author
jbed...@apple.com
Date
2021-05-17 16:45:13 -0700 (Mon, 17 May 2021)

Log Message

[webkitscmpy] Support testing on machines without svn installed
https://bugs.webkit.org/show_bug.cgi?id=225891
<rdar://problem/78126369>

Reviewed by Dewei Zhu.

* Scripts/libraries/webkitscmpy/setup.py: Bump version.
* Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py:
* Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:
(Scm.executable): Ensure whichcraft import support mock.
* Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
(Git.__enter__): Mock git executable location.
* Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/svn.py:
(Svn.__enter__): Mock svn executable location.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (277614 => 277615)


--- trunk/Tools/ChangeLog	2021-05-17 23:24:23 UTC (rev 277614)
+++ trunk/Tools/ChangeLog	2021-05-17 23:45:13 UTC (rev 277615)
@@ -1,3 +1,20 @@
+2021-05-17  Jonathan Bedard  <jbed...@apple.com>
+
+        [webkitscmpy] Support testing on machines without svn installed
+        https://bugs.webkit.org/show_bug.cgi?id=225891
+        <rdar://problem/78126369>
+
+        Reviewed by Dewei Zhu.
+
+        * Scripts/libraries/webkitscmpy/setup.py: Bump version.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py:
+        * Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:
+        (Scm.executable): Ensure whichcraft import support mock.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
+        (Git.__enter__): Mock git executable location.
+        * Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/svn.py:
+        (Svn.__enter__): Mock svn executable location.
+
 2021-05-17  Alex Christensen  <achristen...@webkit.org>
 
         Remove API::Object::Type::BundlePageGroup

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/setup.py (277614 => 277615)


--- trunk/Tools/Scripts/libraries/webkitscmpy/setup.py	2021-05-17 23:24:23 UTC (rev 277614)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/setup.py	2021-05-17 23:45:13 UTC (rev 277615)
@@ -29,7 +29,7 @@
 
 setup(
     name='webkitscmpy',
-    version='0.14.1',
+    version='0.14.2',
     description='Library designed to interact with git and svn repositories.',
     long_description=readme(),
     classifiers=[

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py (277614 => 277615)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py	2021-05-17 23:24:23 UTC (rev 277614)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py	2021-05-17 23:45:13 UTC (rev 277615)
@@ -46,7 +46,7 @@
         "Please install webkitcorepy with `pip install webkitcorepy --extra-index-url <package index URL>`"
     )
 
-version = Version(0, 14, 1)
+version = Version(0, 14, 2)
 
 AutoInstall.register(Package('fasteners', Version(0, 15, 0)))
 AutoInstall.register(Package('monotonic', Version(1, 5)))

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py (277614 => 277615)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py	2021-05-17 23:24:23 UTC (rev 277614)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py	2021-05-17 23:45:13 UTC (rev 277615)
@@ -28,8 +28,6 @@
 from webkitcorepy import run
 from webkitscmpy import ScmBase
 
-# TODO: Use shutil directly when Python 2.7 is removed
-from whichcraft import which
 
 class Scm(ScmBase):
     # Projects can define for themselves what constitutes a development vs a production branch,
@@ -39,6 +37,8 @@
 
     @classmethod
     def executable(cls, program):
+        # TODO: Use shutil directly when Python 2.7 is removed
+        from whichcraft import which
         path = which(program)
         if path is None:
             raise OSError("Cannot find '{}' program".format(program))

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py (277614 => 277615)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py	2021-05-17 23:24:23 UTC (rev 277614)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py	2021-05-17 23:45:13 UTC (rev 277615)
@@ -26,6 +26,8 @@
 import time
 
 from datetime import datetime
+from mock import patch
+
 from webkitcorepy import mocks, OutputCapture, StringIO
 from webkitscmpy import local, Commit, Contributor
 from webkitscmpy.program.canonicalize.committer import main as committer_main
@@ -328,6 +330,12 @@
             ), *git_svn_routes
         )
 
+    def __enter__(self):
+        # TODO: Use shutil directly when Python 2.7 is removed
+        from whichcraft import which
+        self.patches.append(patch('whichcraft.which', lambda cmd: dict(git=self.executable).get(cmd, which(cmd))))
+        return super(Git, self).__enter__()
+
     @property
     def branch(self):
         return self.head.branch

Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/svn.py (277614 => 277615)


--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/svn.py	2021-05-17 23:24:23 UTC (rev 277614)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/svn.py	2021-05-17 23:45:13 UTC (rev 277615)
@@ -25,6 +25,7 @@
 import re
 
 from datetime import datetime
+from mock import patch
 
 from webkitcorepy import mocks
 from webkitscmpy import local
@@ -155,6 +156,12 @@
             ),
         )
 
+    def __enter__(self):
+        # TODO: Use shutil directly when Python 2.7 is removed
+        from whichcraft import which
+        self.patches.append(patch('whichcraft.which', lambda cmd: dict(svn=self.executable).get(cmd, which(cmd))))
+        return super(Svn, self).__enter__()
+
     @property
     def branch(self):
         return self.head.branch
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to