Index: tests/gclient_test.py |
diff --git a/tests/gclient_test.py b/tests/gclient_test.py |
index 305736d536ac22792995f112eef5c5f802518da5..085ef4fb354eb587eefd63c82a28dd275b8d0de7 100644 |
--- a/tests/gclient_test.py |
+++ b/tests/gclient_test.py |
@@ -70,12 +70,12 @@ class GClientBaseTestCase(BaseTestCase): |
self.mox.StubOutWithMock(gclient_scm, 'RunSVNAndGetFileList') |
self._gclient_gclient = gclient.GClient |
gclient.GClient = self.mox.CreateMockAnything() |
- self._scm_wrapper = gclient_scm.SCMWrapper |
- gclient_scm.SCMWrapper = self.mox.CreateMockAnything() |
+ self._scm_wrapper = gclient_scm.create_scm |
+ gclient_scm.create_scm = self.mox.CreateMockAnything() |
def tearDown(self): |
gclient.GClient = self._gclient_gclient |
- gclient_scm.SCMWrapper = self._scm_wrapper |
+ gclient_scm.create_scm = self._scm_wrapper |
BaseTestCase.tearDown(self) |
@@ -408,7 +408,7 @@ class GClientClassTestCase(GclientTestCase): |
# An scm will be requested for the solution. |
scm_wrapper_sol = self.mox.CreateMockAnything() |
- gclient_scm.SCMWrapper(self.url, self.root_dir, solution_name |
+ gclient_scm.create_scm(self.url, self.root_dir, solution_name |
).AndReturn(scm_wrapper_sol) |
# Then an update will be performed. |
scm_wrapper_sol.RunCommand('update', options, self.args, []) |
@@ -465,7 +465,7 @@ class GClientClassTestCase(GclientTestCase): |
).AndReturn(False) |
# An scm will be requested for the solution. |
- gclient_scm.SCMWrapper(self.url, self.root_dir, solution_name |
+ gclient_scm.create_scm(self.url, self.root_dir, solution_name |
).AndReturn(scm_wrapper_sol) |
# Then an update will be performed. |
scm_wrapper_sol.RunCommand('update', options, self.args, []) |
@@ -477,7 +477,7 @@ class GClientClassTestCase(GclientTestCase): |
# Next we expect an scm to be request for dep src/t but it should |
# use the url specified in deps and the relative path should now |
# be relative to the DEPS file. |
- gclient_scm.SCMWrapper( |
+ gclient_scm.create_scm( |
'svn://scm.t/trunk', |
self.root_dir, |
os.path.join(solution_name, "src", "t")).AndReturn(scm_wrapper_t) |
@@ -539,7 +539,7 @@ class GClientClassTestCase(GclientTestCase): |
).AndReturn(False) |
# An scm will be requested for the solution. |
- gclient_scm.SCMWrapper(self.url, self.root_dir, solution_name |
+ gclient_scm.create_scm(self.url, self.root_dir, solution_name |
).AndReturn(scm_wrapper_sol) |
# Then an update will be performed. |
scm_wrapper_sol.RunCommand('update', options, self.args, []) |
@@ -549,13 +549,13 @@ class GClientClassTestCase(GclientTestCase): |
# Next we expect an scm to be request for dep src/n even though it does not |
# exist in the DEPS file. |
- gclient_scm.SCMWrapper('svn://custom.n/trunk', |
- self.root_dir, |
- "src/n").AndReturn(scm_wrapper_n) |
+ gclient_scm.create_scm('svn://custom.n/trunk', |
+ self.root_dir, |
+ "src/n").AndReturn(scm_wrapper_n) |
# Next we expect an scm to be request for dep src/t but it should |
# use the url specified in custom_deps. |
- gclient_scm.SCMWrapper('svn://custom.t/trunk', |
+ gclient_scm.create_scm('svn://custom.t/trunk', |
self.root_dir, |
"src/t").AndReturn(scm_wrapper_t) |
@@ -625,7 +625,7 @@ class GClientClassTestCase(GclientTestCase): |
).AndReturn(False) |
# An scm will be requested for the first solution. |
- gclient_scm.SCMWrapper(url_a, self.root_dir, name_a).AndReturn( |
+ gclient_scm.create_scm(url_a, self.root_dir, name_a).AndReturn( |
scm_wrapper_a) |
# Then an attempt will be made to read it's DEPS file. |
gclient.FileRead(os.path.join(self.root_dir, name_a, options.deps_file) |
@@ -634,7 +634,7 @@ class GClientClassTestCase(GclientTestCase): |
scm_wrapper_a.RunCommand('update', options, self.args, []) |
# An scm will be requested for the second solution. |
- gclient_scm.SCMWrapper(url_b, self.root_dir, name_b).AndReturn( |
+ gclient_scm.create_scm(url_b, self.root_dir, name_b).AndReturn( |
scm_wrapper_b) |
# Then an attempt will be made to read its DEPS file. |
gclient.FileRead(os.path.join(self.root_dir, name_b, options.deps_file) |
@@ -643,7 +643,7 @@ class GClientClassTestCase(GclientTestCase): |
scm_wrapper_b.RunCommand('update', options, self.args, []) |
# Finally, an scm is requested for the shared dep. |
- gclient_scm.SCMWrapper('http://svn.t/trunk', self.root_dir, 'src/t' |
+ gclient_scm.create_scm('http://svn.t/trunk', self.root_dir, 'src/t' |
).AndReturn(scm_wrapper_dep) |
# And an update is run on it. |
scm_wrapper_dep.RunCommand('update', options, self.args, []) |
@@ -671,9 +671,9 @@ class GClientClassTestCase(GclientTestCase): |
).AndReturn(False) |
gclient.os.path.exists(os.path.join(self.root_dir, options.entries_filename) |
).AndReturn(False) |
- gclient_scm.SCMWrapper(self.url, self.root_dir, name).AndReturn( |
- gclient_scm.SCMWrapper) |
- gclient_scm.SCMWrapper.RunCommand('update', options, self.args, []) |
+ gclient_scm.create_scm(self.url, self.root_dir, name).AndReturn( |
+ gclient_scm.create_scm) |
+ gclient_scm.create_scm.RunCommand('update', options, self.args, []) |
gclient.FileRead(os.path.join(self.root_dir, name, options.deps_file) |
).AndReturn("Boo = 'a'") |
gclient.FileWrite(os.path.join(self.root_dir, options.entries_filename), |
@@ -765,36 +765,36 @@ deps_os = { |
gclient.os.path.exists(os.path.join(self.root_dir, options.entries_filename) |
).AndReturn(False) |
- gclient_scm.SCMWrapper(self.url, self.root_dir, 'src').AndReturn( |
+ gclient_scm.create_scm(self.url, self.root_dir, 'src').AndReturn( |
scm_wrapper_src) |
scm_wrapper_src.RunCommand('update', mox.Func(OptIsRev123), self.args, []) |
- gclient_scm.SCMWrapper(self.url, self.root_dir, |
+ gclient_scm.create_scm(self.url, self.root_dir, |
None).AndReturn(scm_wrapper_src2) |
scm_wrapper_src2.FullUrlForRelativeUrl('/trunk/deps/third_party/cygwin@3248' |
).AndReturn(cygwin_path) |
- gclient_scm.SCMWrapper(self.url, self.root_dir, |
+ gclient_scm.create_scm(self.url, self.root_dir, |
None).AndReturn(scm_wrapper_src2) |
scm_wrapper_src2.FullUrlForRelativeUrl('/trunk/deps/third_party/WebKit' |
).AndReturn(webkit_path) |
- gclient_scm.SCMWrapper(webkit_path, self.root_dir, |
+ gclient_scm.create_scm(webkit_path, self.root_dir, |
'foo/third_party/WebKit').AndReturn(scm_wrapper_webkit) |
scm_wrapper_webkit.RunCommand('update', mox.Func(OptIsRev42), self.args, []) |
- gclient_scm.SCMWrapper( |
+ gclient_scm.create_scm( |
'http://google-breakpad.googlecode.com/svn/trunk/src@285', |
self.root_dir, 'src/breakpad/bar').AndReturn(scm_wrapper_breakpad) |
scm_wrapper_breakpad.RunCommand('update', mox.Func(OptIsRevNone), |
self.args, []) |
- gclient_scm.SCMWrapper(cygwin_path, self.root_dir, |
+ gclient_scm.create_scm(cygwin_path, self.root_dir, |
'src/third_party/cygwin').AndReturn(scm_wrapper_cygwin) |
scm_wrapper_cygwin.RunCommand('update', mox.Func(OptIsRev333), self.args, |
[]) |
- gclient_scm.SCMWrapper('svn://random_server:123/trunk/python_24@5580', |
+ gclient_scm.create_scm('svn://random_server:123/trunk/python_24@5580', |
self.root_dir, |
'src/third_party/python_24').AndReturn( |
scm_wrapper_python) |
@@ -870,18 +870,18 @@ deps = { |
).AndReturn(False) |
gclient.os.path.exists(os.path.join(self.root_dir, options.entries_filename) |
).AndReturn(False) |
- gclient_scm.SCMWrapper(self.url, self.root_dir, name).AndReturn( |
- gclient_scm.SCMWrapper) |
- gclient_scm.SCMWrapper.RunCommand('update', options, self.args, []) |
+ gclient_scm.create_scm(self.url, self.root_dir, name).AndReturn( |
+ gclient_scm.create_scm) |
+ gclient_scm.create_scm.RunCommand('update', options, self.args, []) |
- gclient_scm.SCMWrapper(self.url, self.root_dir, |
+ gclient_scm.create_scm(self.url, self.root_dir, |
None).AndReturn(scm_wrapper_src) |
scm_wrapper_src.FullUrlForRelativeUrl('/trunk/bar/WebKit' |
).AndReturn(webkit_path) |
- gclient_scm.SCMWrapper(webkit_path, self.root_dir, |
- 'foo/third_party/WebKit').AndReturn(gclient_scm.SCMWrapper) |
- gclient_scm.SCMWrapper.RunCommand('update', options, self.args, []) |
+ gclient_scm.create_scm(webkit_path, self.root_dir, |
+ 'foo/third_party/WebKit').AndReturn(gclient_scm.create_scm) |
+ gclient_scm.create_scm.RunCommand('update', options, self.args, []) |
self.mox.ReplayAll() |
client = self._gclient_gclient(self.root_dir, options) |
@@ -926,18 +926,18 @@ deps = { |
).AndReturn(False) |
gclient.os.path.exists(os.path.join(self.root_dir, options.entries_filename) |
).AndReturn(False) |
- gclient_scm.SCMWrapper(self.url, self.root_dir, name).AndReturn( |
- gclient_scm.SCMWrapper) |
- gclient_scm.SCMWrapper.RunCommand('update', options, self.args, []) |
+ gclient_scm.create_scm(self.url, self.root_dir, name).AndReturn( |
+ gclient_scm.create_scm) |
+ gclient_scm.create_scm.RunCommand('update', options, self.args, []) |
- gclient_scm.SCMWrapper(self.url, self.root_dir, |
+ gclient_scm.create_scm(self.url, self.root_dir, |
None).AndReturn(scm_wrapper_src) |
scm_wrapper_src.FullUrlForRelativeUrl('/trunk/bar_custom/WebKit' |
).AndReturn(webkit_path) |
- gclient_scm.SCMWrapper(webkit_path, self.root_dir, |
- 'foo/third_party/WebKit').AndReturn(gclient_scm.SCMWrapper) |
- gclient_scm.SCMWrapper.RunCommand('update', options, self.args, []) |
+ gclient_scm.create_scm(webkit_path, self.root_dir, |
+ 'foo/third_party/WebKit').AndReturn(gclient_scm.create_scm) |
+ gclient_scm.create_scm.RunCommand('update', options, self.args, []) |
self.mox.ReplayAll() |
client = self._gclient_gclient(self.root_dir, options) |
@@ -961,9 +961,9 @@ deps = { |
options = self.Options() |
gclient.FileRead(os.path.join(self.root_dir, name, options.deps_file) |
).AndReturn(deps_content) |
- gclient_scm.SCMWrapper(self.url, self.root_dir, name).AndReturn( |
- gclient_scm.SCMWrapper) |
- gclient_scm.SCMWrapper.RunCommand('update', options, self.args, []) |
+ gclient_scm.create_scm(self.url, self.root_dir, name).AndReturn( |
+ gclient_scm.create_scm) |
+ gclient_scm.create_scm.RunCommand('update', options, self.args, []) |
self.mox.ReplayAll() |
client = self._gclient_gclient(self.root_dir, options) |
@@ -1038,18 +1038,27 @@ class SCMWrapperTestCase(GClientBaseTestCase): |
def testDir(self): |
members = [ |
'FullUrlForRelativeUrl', 'RunCommand', 'cleanup', 'diff', 'export', |
- 'pack', 'relpath', 'revert', 'scm_name', 'status', 'update', 'url', |
+ 'pack', 'relpath', 'revert', 'runhooks', 'scm_name', 'status', |
+ 'update', 'url', |
] |
# If you add a member, be sure to add the relevant test! |
- self.compareMembers(self._scm_wrapper(), members) |
+ self.compareMembers(self._scm_wrapper(self.url, |
+ self.root_dir, |
+ self.relpath), |
+ members) |
+ |
+ def testUnsupportedSCM(self): |
+ args = [self.url, self.root_dir, self.relpath] |
+ kwargs = {'scm_name' : 'foo'} |
+ exception_msg = 'Unsupported scm %(scm_name)s' % kwargs |
+ self.assertRaisesError(exception_msg, self._scm_wrapper, *args, **kwargs) |
def testFullUrlForRelativeUrl(self): |
self.url = 'svn://a/b/c/d' |
self.mox.ReplayAll() |
- scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, |
- relpath=self.relpath) |
+ scm = self._scm_wrapper(self.url, self.root_dir, self.relpath) |
self.assertEqual(scm.FullUrlForRelativeUrl('/crap'), 'svn://a/b/crap') |
def testRunCommandException(self): |
@@ -1058,11 +1067,10 @@ class SCMWrapperTestCase(GClientBaseTestCase): |
).AndReturn(False) |
self.mox.ReplayAll() |
- scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, |
- relpath=self.relpath) |
+ scm = self._scm_wrapper(self.url, self.root_dir, self.relpath) |
exception = "Unsupported argument(s): %s" % ','.join(self.args) |
- self.assertRaisesError(exception, self._scm_wrapper.RunCommand, |
- scm, 'update', options, self.args) |
+ self.assertRaisesError(exception, scm.RunCommand, |
+ 'update', options, self.args) |
def testRunCommandUnknown(self): |
# TODO(maruel): if ever used. |
@@ -1082,8 +1090,7 @@ class SCMWrapperTestCase(GClientBaseTestCase): |
self.root_dir, files_list) |
self.mox.ReplayAll() |
- scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, |
- relpath=self.relpath) |
+ scm = self._scm_wrapper(self.url, self.root_dir, self.relpath) |
scm.revert(options, self.args, files_list) |
def testRevertNone(self): |
@@ -1093,8 +1100,7 @@ class SCMWrapperTestCase(GClientBaseTestCase): |
gclient_scm.CaptureSVNStatus(base_path).AndReturn([]) |
self.mox.ReplayAll() |
- scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, |
- relpath=self.relpath) |
+ scm = self._scm_wrapper(self.url, self.root_dir, self.relpath) |
file_list = [] |
scm.revert(options, self.args, file_list) |
@@ -1113,8 +1119,7 @@ class SCMWrapperTestCase(GClientBaseTestCase): |
gclient_scm.RunSVN(['revert', 'a', 'b'], base_path) |
self.mox.ReplayAll() |
- scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, |
- relpath=self.relpath) |
+ scm = self._scm_wrapper(self.url, self.root_dir, self.relpath) |
file_list = [] |
scm.revert(options, self.args, file_list) |
@@ -1146,8 +1151,7 @@ class SCMWrapperTestCase(GClientBaseTestCase): |
[]).AndReturn(None) |
self.mox.ReplayAll() |
- scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, |
- relpath=self.relpath) |
+ scm = self._scm_wrapper(self.url, self.root_dir, self.relpath) |
file_list = [] |
self.assertEqual(scm.status(options, self.args, file_list), None) |
@@ -1169,8 +1173,7 @@ class SCMWrapperTestCase(GClientBaseTestCase): |
gclient_scm.RunSVNAndGetFileList(['checkout', self.url, base_path], |
self.root_dir, files_list) |
self.mox.ReplayAll() |
- scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, |
- relpath=self.relpath) |
+ scm = self._scm_wrapper(self.url, self.root_dir, self.relpath) |
scm.update(options, (), files_list) |
def testUpdateUpdate(self): |
@@ -1199,8 +1202,7 @@ class SCMWrapperTestCase(GClientBaseTestCase): |
self.root_dir, files_list) |
self.mox.ReplayAll() |
- scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, |
- relpath=self.relpath) |
+ scm = self._scm_wrapper(self.url, self.root_dir, self.relpath) |
scm.update(options, (), files_list) |
def testUpdateGit(self): |
@@ -1210,8 +1212,7 @@ class SCMWrapperTestCase(GClientBaseTestCase): |
print("________ found .git directory; skipping %s" % self.relpath) |
self.mox.ReplayAll() |
- scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, |
- relpath=self.relpath) |
+ scm = self._scm_wrapper(self.url, self.root_dir, self.relpath) |
file_list = [] |
scm.update(options, self.args, file_list) |