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

Unified Diff: tests/gclient_scm_test.py

Issue 8227033: Make revert more resilient to partial sync failure. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 9 years, 2 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 | « gclient_scm.py ('k') | no next file » | 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 6d5e380c0f9e2d18d9e64ff0255771611b2c3777..cb765b9164b449a6b57f70a609b7a3d74d25b181 100755
--- a/tests/gclient_scm_test.py
+++ b/tests/gclient_scm_test.py
@@ -65,12 +65,12 @@ class BaseTestCase(GCBaseTestCase, SuperMoxTestBase):
class SVNWrapperTestCase(BaseTestCase):
class OptionsObject(object):
- def __init__(self, verbose=False, revision=None):
+ def __init__(self, verbose=False, revision=None, force=False):
self.verbose = verbose
self.revision = revision
self.manually_grab_svn_rev = True
self.deps_os = None
- self.force = False
+ self.force = force
self.reset = False
self.nohooks = False
@@ -132,6 +132,7 @@ class SVNWrapperTestCase(BaseTestCase):
def testRevertMissing(self):
options = self.Options(verbose=True)
gclient_scm.os.path.isdir(self.base_path).AndReturn(False)
+ gclient_scm.os.path.exists(self.base_path).AndReturn(False)
gclient_scm.scm.SVN.Capture(['--version']
).AndReturn('svn, version 1.5.1 (r32289)')
# It'll to a checkout instead.
@@ -153,9 +154,37 @@ class SVNWrapperTestCase(BaseTestCase):
self.checkstdout(
('\n_____ %s is missing, synching instead\n' % self.relpath))
+ def testRevertNoDotSvn(self):
+ 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(self.base_path).AndReturn(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(False)
+ files_list = self.mox.CreateMockAnything()
+ gclient_scm.scm.SVN.Capture(['--version']).AndReturn('svn, version 1.6')
+ gclient_scm.scm.SVN.RunAndGetFileList(
+ options.verbose,
+ ['checkout', self.url, self.base_path, '--force', '--ignore-externals'],
+ cwd=self.root_dir,
+ file_list=files_list)
+
+ self.mox.ReplayAll()
+ scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
+ relpath=self.relpath)
+ scm.revert(options, self.args, files_list)
+ self.checkstdout(
+ '\n_____ %s is not a valid svn checkout, synching instead\n' %
+ self.relpath)
+
def testRevertNone(self):
options = self.Options(verbose=True)
gclient_scm.os.path.isdir(self.base_path).AndReturn(True)
+ gclient_scm.os.path.isdir(join(self.base_path, '.svn')).AndReturn(True)
gclient_scm.scm.SVN.CaptureStatus(self.base_path).AndReturn([])
gclient_scm.scm.SVN.RunAndGetFileList(
options.verbose,
@@ -172,6 +201,7 @@ class SVNWrapperTestCase(BaseTestCase):
def testRevertDirectory(self):
options = self.Options(verbose=True)
gclient_scm.os.path.isdir(self.base_path).AndReturn(True)
+ gclient_scm.os.path.isdir(join(self.base_path, '.svn')).AndReturn(True)
items = [
('~ ', 'a'),
]
« no previous file with comments | « gclient_scm.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698