Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(176)

Unified Diff: tests/gclient_scm_test.py

Issue 189913020: gclient: print a warning if a dep would get deleted or moved in the future (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: rebase+fix Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « testing_support/fake_repos.py ('k') | tests/gclient_smoketest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/gclient_scm_test.py
diff --git a/tests/gclient_scm_test.py b/tests/gclient_scm_test.py
index 6b667a00abd41fedd9f5216a7b197cdda9f311ba..a0b6d2864b942b407e6b71c842ccf4904278f715 100755
--- a/tests/gclient_scm_test.py
+++ b/tests/gclient_scm_test.py
@@ -150,7 +150,6 @@ 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)
self.mox.ReplayAll()
@@ -171,7 +170,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)
@@ -203,7 +201,6 @@ class SVNWrapperTestCase(BaseTestCase):
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)
@@ -329,7 +326,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)
@@ -362,8 +358,9 @@ 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.
@@ -408,8 +405,9 @@ 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.
@@ -444,8 +442,9 @@ 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.
@@ -510,8 +509,9 @@ 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
@@ -580,8 +580,9 @@ 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)
@@ -616,8 +617,9 @@ 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)
@@ -635,20 +637,83 @@ class SVNWrapperTestCase(BaseTestCase):
def testUpdateGit(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)
+ file_path = gclient_scm.os.path.join(self.root_dir, self.relpath, '.hg')
+ gclient_scm.os.path.exists(file_path).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)
+ error = gclient_scm.subprocess2.CalledProcessError(
+ 1, 'cmd', '/cwd', 'stdout', 'stderr')
+ gclient_scm.scm.SVN._CaptureInfo([], self.base_path+'/.').AndRaise(error)
+
+ gclient_scm.os.path.exists(self.root_dir).AndReturn(True)
+ gclient_scm.scm.SVN.Capture(['--version', '--quiet'], None
+ ).AndReturn('1.5.1')
+ gclient_scm.scm.SVN.RunAndGetFileList(
+ options.verbose,
+ ['checkout', self.url, self.base_path, '--force', '--ignore-externals'],
+ cwd=self.root_dir,
+ file_list=[])
+
+ gclient_scm.scm.SVN._CaptureInfo([], self.base_path+'/.'
+ ).AndReturn({'Revision': 100})
+
+ self.mox.ReplayAll()
+ scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
+ relpath=self.relpath)
+ scm.update(options, None, [])
+
+ def testUpdateGitForce(self):
+ options = self.Options(verbose=True, force=True)
+ file_path = gclient_scm.os.path.join(self.root_dir, self.relpath, '.hg')
+ gclient_scm.os.path.exists(file_path).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)
+ error = gclient_scm.subprocess2.CalledProcessError(
+ 1, 'cmd', '/cwd', 'stdout', 'stderr')
+ gclient_scm.scm.SVN._CaptureInfo([], self.base_path+'/.').AndRaise(error)
+ gclient_scm.os.path.exists(self.root_dir).AndReturn(True)
+ gclient_scm.scm.SVN.Capture(['--version', '--quiet'], None
+ ).AndReturn('1.5.1')
+ gclient_scm.scm.SVN.RunAndGetFileList(
+ options.verbose,
+ ['checkout', self.url, self.base_path, '--force', '--ignore-externals'],
+ cwd=self.root_dir,
+ file_list=[])
+
+ gclient_scm.scm.SVN._CaptureInfo([], self.base_path+'/.'
+ ).AndReturn({'Revision': 100})
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)
+ scm.update(options, None, file_list)
+
+ def testUpdateGitSvn(self):
+ options = self.Options(verbose=True)
+ file_path = gclient_scm.os.path.join(self.root_dir, self.relpath, '.hg')
+ gclient_scm.os.path.exists(file_path).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(True)
+ self.mox.StubOutWithMock(gclient_scm.scm.GIT, 'Capture', True)
+ gclient_scm.scm.GIT.Capture(['config', '--local', '--get',
+ 'svn-remote.svn.url'],
+ cwd=self.base_path).AndReturn(self.url)
+
+ self.mox.ReplayAll()
+ scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
+ relpath=self.relpath)
+ file_list = []
+ scm.update(options, [], file_list)
self.checkstdout(
- ('________ found .git directory; skipping %s\n' % self.relpath))
+ ('\n_____ %s looks like a git-svn checkout. Skipping.\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)
self.mox.ReplayAll()
@@ -1109,6 +1174,12 @@ class ManagedGitWrapperTestCaseMox(BaseTestCase):
def Options(self, *args, **kwargs):
return self.OptionsObject(*args, **kwargs)
+ def checkstdout(self, expected):
+ value = sys.stdout.getvalue()
+ sys.stdout.close()
+ # pylint: disable=E1101
+ self.assertEquals(expected, strip_timestamps(value))
+
def setUp(self):
BaseTestCase.setUp(self)
self.fake_hash_1 = 't0ta11yf4k3'
@@ -1219,6 +1290,77 @@ class ManagedGitWrapperTestCaseMox(BaseTestCase):
self.assertRaises(gclient_scm.gclient_utils.Error,
git_svn_scm.GetUsableRev, too_big, options)
+ def testUpdateNoDotGit(self):
+ options = self.Options()
+
+ gclient_scm.os.path.exists(self.base_path).AndReturn(True)
+ gclient_scm.os.path.isdir(self.base_path).AndReturn(True)
+ gclient_scm.os.path.exists(os.path.join(self.base_path, '.git')
+ ).AndReturn(False)
+ gclient_scm.os.path.isdir(self.base_path).AndReturn(True)
+ gclient_scm.os.path.exists(os.path.join(self.base_path, '.git')
+ ).AndReturn(False)
+
+ self.mox.StubOutWithMock(gclient_scm.GitWrapper, '_Clone', True)
+ # pylint: disable=E1120
+ gclient_scm.GitWrapper._Clone('refs/remotes/origin/master', self.url,
+ options)
+ # pylint: disable=E1120
+ self.mox.StubOutWithMock(gclient_scm.GitWrapper, 'UpdateSubmoduleConfig',
+ True)
+ gclient_scm.GitWrapper.UpdateSubmoduleConfig()
+ self.mox.StubOutWithMock(gclient_scm.subprocess2, 'check_output', True)
+ gclient_scm.subprocess2.check_output(['git', 'ls-files'],
+ cwd=self.base_path,
+ stderr=-1,
+ ).AndReturn('')
+ gclient_scm.subprocess2.check_output(
+ ['git', 'rev-parse', '--verify', 'HEAD'],
+ cwd=self.base_path,
+ stderr=-1,
+ ).AndReturn('')
+
+ self.mox.ReplayAll()
+ scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
+ relpath=self.relpath)
+ scm.update(options, None, [])
+ self.checkstdout('\n')
+
+ def testUpdateNoDotGitForce(self):
+ options = self.Options(force=True)
+
+ gclient_scm.os.path.exists(self.base_path).AndReturn(True)
+ gclient_scm.os.path.isdir(self.base_path).AndReturn(True)
+ gclient_scm.os.path.exists(os.path.join(self.base_path, '.git')
+ ).AndReturn(False)
+ gclient_scm.os.path.isdir(self.base_path).AndReturn(True)
+ gclient_scm.os.path.exists(os.path.join(self.base_path, '.git')
+ ).AndReturn(False)
+ self.mox.StubOutWithMock(gclient_scm.GitWrapper, '_Clone', True)
+ # pylint: disable=E1120
+ gclient_scm.GitWrapper._Clone('refs/remotes/origin/master', self.url,
+ options)
+ # pylint: disable=E1120
+ self.mox.StubOutWithMock(gclient_scm.GitWrapper, 'UpdateSubmoduleConfig',
+ True)
+ gclient_scm.GitWrapper.UpdateSubmoduleConfig()
+ self.mox.StubOutWithMock(gclient_scm.subprocess2, 'check_output', True)
+ gclient_scm.subprocess2.check_output(['git', 'ls-files'],
+ cwd=self.base_path,
+ stderr=-1,
+ ).AndReturn('')
+ gclient_scm.subprocess2.check_output(
+ ['git', 'rev-parse', '--verify', 'HEAD'],
+ cwd=self.base_path,
+ stderr=-1,
+ ).AndReturn('')
+
+ self.mox.ReplayAll()
+ scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
+ relpath=self.relpath)
+ scm.update(options, None, [])
+ self.checkstdout('\n')
+
class UnmanagedGitWrapperTestCase(BaseGitWrapperTestCase):
def testUpdateUpdate(self):
« no previous file with comments | « testing_support/fake_repos.py ('k') | tests/gclient_smoketest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698