Index: tests/gclient_scm_test.py |
diff --git a/tests/gclient_scm_test.py b/tests/gclient_scm_test.py |
index 741727e34f69c58b42145616866fff6377fae95c..65d5a405e46fbf08a4b0f0f39ab31d3e8fb8effc 100755 |
--- a/tests/gclient_scm_test.py |
+++ b/tests/gclient_scm_test.py |
@@ -101,6 +101,7 @@ class SVNWrapperTestCase(BaseTestCase): |
'BinaryExists', |
'FullUrlForRelativeUrl', |
'GetCheckoutRoot', |
+ 'GetRemoteURL', |
'GetRevisionDate', |
'GetUsableRev', |
'Svnversion', |
@@ -161,9 +162,9 @@ class SVNWrapperTestCase(BaseTestCase): |
def testRunCommandException(self): |
options = self.Options(verbose=False) |
- gclient_scm.os.path.exists(join(self.base_path, '.git')).AndReturn(False) |
- gclient_scm.os.path.exists(join(self.base_path, '.hg')).AndReturn(False) |
- |
+ gclient_scm.os.path.exists(self.base_path).AndReturn(True) |
+ self.mox.StubOutWithMock(gclient_scm.scm.GIT, 'IsGitSvn', True) |
+ gclient_scm.scm.GIT.IsGitSvn(self.base_path).AndReturn(False) |
self.mox.ReplayAll() |
scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, |
relpath=self.relpath) |
@@ -182,8 +183,6 @@ class SVNWrapperTestCase(BaseTestCase): |
gclient_scm.scm.SVN.Capture(['--version', '--quiet'], None |
).AndReturn('1.5.1') |
# It'll to a checkout instead. |
- gclient_scm.os.path.exists(join(self.base_path, '.git')).AndReturn(False) |
- gclient_scm.os.path.exists(join(self.base_path, '.hg')).AndReturn(False) |
# Checkout. |
gclient_scm.os.path.exists(self.base_path).AndReturn(False) |
parent = gclient_scm.os.path.dirname(self.base_path) |
@@ -211,16 +210,14 @@ class SVNWrapperTestCase(BaseTestCase): |
options = self.Options(verbose=True, force=True) |
gclient_scm.os.path.isdir(self.base_path).AndReturn(True) |
gclient_scm.os.path.isdir(join(self.base_path, '.svn')).AndReturn(False) |
- gclient_scm.os.path.isdir(join(self.base_path, '.git')).AndReturn(False) |
- gclient_scm.os.path.isdir(join(self.base_path, '.hg')).AndReturn(False) |
# Checkout. |
- gclient_scm.os.path.exists(join(self.base_path, '.git')).AndReturn(False) |
- gclient_scm.os.path.exists(join(self.base_path, '.hg')).AndReturn(False) |
gclient_scm.os.path.exists(self.base_path).AndReturn(False) |
parent = gclient_scm.os.path.dirname(self.base_path) |
gclient_scm.os.path.exists(parent).AndReturn(False) |
gclient_scm.os.makedirs(parent) |
gclient_scm.os.path.exists(parent).AndReturn(True) |
+ self.mox.StubOutWithMock(gclient_scm.scm.GIT, 'IsGitSvn', True) |
+ gclient_scm.scm.GIT.IsGitSvn(self.base_path).AndReturn(False) |
files_list = self.mox.CreateMockAnything() |
gclient_scm.scm.SVN.Capture(['--version', '--quiet'], None |
).AndReturn('1.6') |
@@ -340,8 +337,6 @@ class SVNWrapperTestCase(BaseTestCase): |
file_info.url = self.url |
file_info.uuid = 'ABC' |
file_info.revision = 42 |
- gclient_scm.os.path.exists(join(self.base_path, '.git')).AndReturn(False) |
- gclient_scm.os.path.exists(join(self.base_path, '.hg')).AndReturn(False) |
# Checkout. |
gclient_scm.os.path.exists(self.base_path).AndReturn(False) |
parent = gclient_scm.os.path.dirname(self.base_path) |
@@ -373,8 +368,8 @@ class SVNWrapperTestCase(BaseTestCase): |
'UUID': 'ABC', |
'Revision': 42, |
} |
- gclient_scm.os.path.exists(join(self.base_path, '.git')).AndReturn(False) |
- gclient_scm.os.path.exists(join(self.base_path, '.hg')).AndReturn(False) |
+ self.mox.StubOutWithMock(gclient_scm.scm.GIT, 'IsGitSvn', True) |
+ gclient_scm.scm.GIT.IsGitSvn(self.base_path).AndReturn(False) |
gclient_scm.os.path.exists(self.base_path).AndReturn(True) |
# Checkout or update. |
@@ -419,8 +414,8 @@ class SVNWrapperTestCase(BaseTestCase): |
'UUID': 'ABC', |
'Revision': 42, |
} |
- gclient_scm.os.path.exists(join(self.base_path, '.git')).AndReturn(False) |
- gclient_scm.os.path.exists(join(self.base_path, '.hg')).AndReturn(False) |
+ self.mox.StubOutWithMock(gclient_scm.scm.GIT, 'IsGitSvn', True) |
+ gclient_scm.scm.GIT.IsGitSvn(self.base_path).AndReturn(False) |
gclient_scm.os.path.exists(self.base_path).AndReturn(True) |
# Checkout or update. |
@@ -455,8 +450,8 @@ class SVNWrapperTestCase(BaseTestCase): |
'UUID': 'ABC', |
'Revision': 42, |
} |
- gclient_scm.os.path.exists(join(self.base_path, '.git')).AndReturn(False) |
- gclient_scm.os.path.exists(join(self.base_path, '.hg')).AndReturn(False) |
+ self.mox.StubOutWithMock(gclient_scm.scm.GIT, 'IsGitSvn', True) |
+ gclient_scm.scm.GIT.IsGitSvn(self.base_path).AndReturn(False) |
gclient_scm.os.path.exists(self.base_path).AndReturn(True) |
# Checkout or update. |
@@ -521,8 +516,8 @@ class SVNWrapperTestCase(BaseTestCase): |
file_list=files_list) |
# Now we fall back on scm.update(). |
- gclient_scm.os.path.exists(join(self.base_path, '.git')).AndReturn(False) |
- gclient_scm.os.path.exists(join(self.base_path, '.hg')).AndReturn(False) |
+ self.mox.StubOutWithMock(gclient_scm.scm.GIT, 'IsGitSvn', True) |
+ gclient_scm.scm.GIT.IsGitSvn(self.base_path).AndReturn(False) |
gclient_scm.os.path.exists(self.base_path).AndReturn(True) |
gclient_scm.scm.SVN._CaptureInfo([], dotted_path).AndReturn(file_info) |
gclient_scm.scm.SVN._CaptureInfo([file_info['URL']], None |
@@ -591,8 +586,8 @@ class SVNWrapperTestCase(BaseTestCase): |
file_list=files_list) |
# Now we fall back on scm.update(). |
- gclient_scm.os.path.exists(join(self.base_path, '.git')).AndReturn(False) |
- gclient_scm.os.path.exists(join(self.base_path, '.hg')).AndReturn(False) |
+ self.mox.StubOutWithMock(gclient_scm.scm.GIT, 'IsGitSvn', True) |
+ gclient_scm.scm.GIT.IsGitSvn(self.base_path).AndReturn(False) |
gclient_scm.os.path.exists(self.base_path).AndReturn(True) |
gclient_scm.scm.SVN._CaptureInfo( |
[], join(self.base_path, ".")).AndReturn(file_info) |
@@ -627,8 +622,8 @@ class SVNWrapperTestCase(BaseTestCase): |
# Now we fall back on scm.update(). |
files_list = self.mox.CreateMockAnything() |
- gclient_scm.os.path.exists(join(self.base_path, '.git')).AndReturn(False) |
- gclient_scm.os.path.exists(join(self.base_path, '.hg')).AndReturn(False) |
+ self.mox.StubOutWithMock(gclient_scm.scm.GIT, 'IsGitSvn', True) |
+ gclient_scm.scm.GIT.IsGitSvn(self.base_path).AndReturn(False) |
gclient_scm.os.path.exists(self.base_path).AndReturn(True) |
gclient_scm.scm.SVN._CaptureInfo( |
[], join(self.base_path, '.')).AndReturn(file_info) |
@@ -644,23 +639,11 @@ class SVNWrapperTestCase(BaseTestCase): |
scm.updatesingle(options, ['DEPS'], files_list) |
self.checkstdout('\n_____ %s at 42\n' % self.relpath) |
- def testUpdateGit(self): |
+ def testUpdateGitSvn(self): |
options = self.Options(verbose=True) |
- file_path = gclient_scm.os.path.join(self.root_dir, self.relpath, '.git') |
- gclient_scm.os.path.exists(file_path).AndReturn(True) |
- |
- self.mox.ReplayAll() |
- scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, |
- relpath=self.relpath) |
- file_list = [] |
- scm.update(options, self.args, file_list) |
- self.checkstdout( |
- ('________ found .git directory; skipping %s\n' % self.relpath)) |
- |
- def testUpdateHg(self): |
- options = self.Options(verbose=True) |
- gclient_scm.os.path.exists(join(self.base_path, '.git')).AndReturn(False) |
- gclient_scm.os.path.exists(join(self.base_path, '.hg')).AndReturn(True) |
+ gclient_scm.os.path.exists(self.base_path).AndReturn(True) |
+ self.mox.StubOutWithMock(gclient_scm.scm.GIT, 'IsGitSvn', True) |
+ gclient_scm.scm.GIT.IsGitSvn(self.base_path).AndReturn(True) |
self.mox.ReplayAll() |
scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, |
@@ -668,7 +651,7 @@ class SVNWrapperTestCase(BaseTestCase): |
file_list = [] |
scm.update(options, self.args, file_list) |
self.checkstdout( |
- ('________ found .hg directory; skipping %s\n' % self.relpath)) |
+ ('________ %s looks like git-svn; skipping.\n' % self.relpath)) |
def testGetUsableRevSVN(self): |
# pylint: disable=E1101 |
@@ -691,6 +674,48 @@ class SVNWrapperTestCase(BaseTestCase): |
self.assertRaises(gclient_scm.gclient_utils.Error, |
svn_scm.GetUsableRev, 'fake', options) |
+ def testGetRemoteURL(self): |
+ self.mox.UnsetStubs() |
+ options = self.Options(verbose=True) |
+ self.mox.StubOutWithMock(gclient_scm.scm.SVN, 'Capture', True) |
+ svn_scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, |
+ relpath=self.relpath) |
+ |
+ if svn_scm.relpath: |
+ cwd = os.path.join(svn_scm._root_dir, svn_scm.relpath) |
+ else: |
+ cwd = svn_scm._root_dir |
+ |
+ gclient_scm.scm.SVN.Capture(['info', '--xml', os.curdir], cwd).AndReturn( |
+"""<?xml version="1.0"?> |
+<info> |
+<entry |
+ path="." |
+ revision="1234" |
+ kind="dir"> |
+<url>%s</url> |
+<repository> |
+<root>https://dummy.repo.com/svn</root> |
+<uuid>FAKE</uuid> |
+</repository> |
+<wc-info> |
+<schedule>normal</schedule> |
+<depth>infinity</depth> |
+</wc-info> |
+<commit |
+ revision="1234"> |
+<author>fakedev@chromium.org</author> |
+<date>2013-11-14T15:08:21.757885Z</date> |
+</commit> |
+</entry> |
+</info> |
+""" % svn_scm.url) |
+ |
+ self.mox.ReplayAll() |
+ |
+ self.assertEquals(svn_scm.GetRemoteURL(options), self.url) |
+ |
+ |
class BaseGitWrapperTestCase(GCBaseTestCase, StdoutCheck, TestCaseUtils, |
unittest.TestCase): |
"""This class doesn't use pymox.""" |
@@ -836,6 +861,7 @@ class ManagedGitWrapperTestCase(BaseGitWrapperTestCase): |
'BinaryExists', |
'FullUrlForRelativeUrl', |
'GetCheckoutRoot', |
+ 'GetRemoteURL', |
'GetRevisionDate', |
'GetUsableRev', |
'RunCommand', |
@@ -1162,7 +1188,7 @@ class ManagedGitWrapperTestCaseMox(BaseTestCase): |
).AndReturn(True) |
self.mox.StubOutWithMock(gclient_scm.scm.GIT, 'IsGitSvn', True) |
- gclient_scm.scm.GIT.IsGitSvn(cwd=self.base_path).MultipleTimes( |
+ gclient_scm.scm.GIT.IsGitSvn(self.base_path).MultipleTimes( |
).AndReturn(False) |
gclient_scm.scm.os.path.isdir(self.base_path).AndReturn(True) |
@@ -1211,7 +1237,7 @@ class ManagedGitWrapperTestCaseMox(BaseTestCase): |
gclient_scm.scm.GIT.Capture(['fetch', 'origin'], cwd=self.base_path) |
self.mox.StubOutWithMock(gclient_scm.scm.GIT, 'IsGitSvn', True) |
- gclient_scm.scm.GIT.IsGitSvn(cwd=self.base_path).MultipleTimes( |
+ gclient_scm.scm.GIT.IsGitSvn(self.base_path).MultipleTimes( |
).AndReturn(True) |
self.mox.StubOutWithMock(gclient_scm.scm.GIT, 'IsValidRevision', True) |
@@ -1251,6 +1277,18 @@ class ManagedGitWrapperTestCaseMox(BaseTestCase): |
self.assertRaises(gclient_scm.gclient_utils.Error, |
git_svn_scm.GetUsableRev, too_big, options) |
+ def testGetRemoteURL(self): |
+ options = self.Options(verbose=True) |
+ self.mox.StubOutWithMock(gclient_scm.GitWrapper, '_Capture', True) |
+ git_scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, |
+ relpath=self.relpath) |
+ git_scm._Capture(['config', 'remote.origin.url'], cwd='/tmp/fake' |
+ ).AndReturn('%s\n' % git_scm.url) |
+ |
+ self.mox.ReplayAll() |
+ |
+ self.assertEquals(git_scm.GetRemoteURL(options), self.url) |
+ |
class UnmanagedGitWrapperTestCase(BaseGitWrapperTestCase): |
def testUpdateUpdate(self): |