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

Side by Side Diff: tests/gclient_scm_test.py

Issue 61623008: If the destination directory doesn't contain the desired repo, delete it (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Rebase Created 7 years, 1 month 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 unified diff | Download patch
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Unit tests for gclient_scm.py.""" 6 """Unit tests for gclient_scm.py."""
7 7
8 # pylint: disable=E1103 8 # pylint: disable=E1103
9 9
10 # Import before super_mox to keep valid references. 10 # Import before super_mox to keep valid references.
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 95
96 def setUp(self): 96 def setUp(self):
97 BaseTestCase.setUp(self) 97 BaseTestCase.setUp(self)
98 self.url = self.SvnUrl() 98 self.url = self.SvnUrl()
99 99
100 def testDir(self): 100 def testDir(self):
101 members = [ 101 members = [
102 'BinaryExists', 102 'BinaryExists',
103 'FullUrlForRelativeUrl', 103 'FullUrlForRelativeUrl',
104 'GetCheckoutRoot', 104 'GetCheckoutRoot',
105 'GetRemoteURL',
105 'GetRevisionDate', 106 'GetRevisionDate',
106 'GetUsableRev', 107 'GetUsableRev',
107 'Svnversion', 108 'Svnversion',
108 'RunCommand', 109 'RunCommand',
109 'cleanup', 110 'cleanup',
110 'diff', 111 'diff',
111 'name', 112 'name',
112 'pack', 113 'pack',
113 'relpath', 114 'relpath',
114 'revert', 115 'revert',
(...skipping 570 matching lines...) Expand 10 before | Expand all | Expand 10 after
685 686
686 self.mox.ReplayAll() 687 self.mox.ReplayAll()
687 688
688 svn_scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir) 689 svn_scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir)
689 # With an SVN checkout, 1 an example of a valid usable rev. 690 # With an SVN checkout, 1 an example of a valid usable rev.
690 self.assertEquals(svn_scm.GetUsableRev(1, options), 1) 691 self.assertEquals(svn_scm.GetUsableRev(1, options), 1)
691 # With an SVN checkout, a fake or unknown rev should raise an excpetion. 692 # With an SVN checkout, a fake or unknown rev should raise an excpetion.
692 self.assertRaises(gclient_scm.gclient_utils.Error, 693 self.assertRaises(gclient_scm.gclient_utils.Error,
693 svn_scm.GetUsableRev, 'fake', options) 694 svn_scm.GetUsableRev, 'fake', options)
694 695
696 def testGetRemoteURL(self):
697 options = self.Options(verbose=True)
698 svn_scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
699 relpath=self.relpath)
700
701 if svn_scm.relpath:
702 cwd = os.path.join(svn_scm._root_dir, svn_scm.relpath)
703 else:
704 cwd = svn_scm._root_dir
705
706 gclient_scm.scm.SVN.Capture(['info', os.curdir], cwd).AndReturn(
707 """
708 Path: .
709 URL: %s
710 Repository Root: https://dummy.repo.com/svn
711 Repository UUID: FAKE
712 Revision: 1234
713 Node Kind: directory
714 Schedule: normal
715 Last Changed Author: fakedev@chromium.org
716 Last Changed Rev: 1234
717 Last Changed Date: 2013-11-11 15:12:34 -0500 (Mon, 11 Nov 2013)
718 """ % svn_scm.url)
719
720 self.mox.ReplayAll()
721
722 self.assertEquals(svn_scm.GetRemoteURL(options), self.url)
723
724
695 class BaseGitWrapperTestCase(GCBaseTestCase, StdoutCheck, TestCaseUtils, 725 class BaseGitWrapperTestCase(GCBaseTestCase, StdoutCheck, TestCaseUtils,
696 unittest.TestCase): 726 unittest.TestCase):
697 """This class doesn't use pymox.""" 727 """This class doesn't use pymox."""
698 class OptionsObject(object): 728 class OptionsObject(object):
699 def __init__(self, verbose=False, revision=None): 729 def __init__(self, verbose=False, revision=None):
700 self.verbose = verbose 730 self.verbose = verbose
701 self.revision = revision 731 self.revision = revision
702 self.manually_grab_svn_rev = True 732 self.manually_grab_svn_rev = True
703 self.deps_os = None 733 self.deps_os = None
704 self.force = False 734 self.force = False
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 rmtree(self.root_dir) 836 rmtree(self.root_dir)
807 gclient_scm.GitWrapper.BinaryExists = self._original_GitBinaryExists 837 gclient_scm.GitWrapper.BinaryExists = self._original_GitBinaryExists
808 gclient_scm.SVNWrapper.BinaryExists = self._original_SVNBinaryExists 838 gclient_scm.SVNWrapper.BinaryExists = self._original_SVNBinaryExists
809 839
810 class ManagedGitWrapperTestCase(BaseGitWrapperTestCase): 840 class ManagedGitWrapperTestCase(BaseGitWrapperTestCase):
811 def testDir(self): 841 def testDir(self):
812 members = [ 842 members = [
813 'BinaryExists', 843 'BinaryExists',
814 'FullUrlForRelativeUrl', 844 'FullUrlForRelativeUrl',
815 'GetCheckoutRoot', 845 'GetCheckoutRoot',
846 'GetRemoteURL',
816 'GetRevisionDate', 847 'GetRevisionDate',
817 'GetUsableRev', 848 'GetUsableRev',
818 'RunCommand', 849 'RunCommand',
819 'cache_dir', 850 'cache_dir',
820 'cache_locks', 851 'cache_locks',
821 'cleanup', 852 'cleanup',
822 'diff', 853 'diff',
823 'name', 854 'name',
824 'pack', 855 'pack',
825 'UpdateSubmoduleConfig', 856 'UpdateSubmoduleConfig',
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
1173 self.assertEquals(git_svn_scm.GetUsableRev('3', options), 1204 self.assertEquals(git_svn_scm.GetUsableRev('3', options),
1174 self.fake_hash_2) 1205 self.fake_hash_2)
1175 # Given a git sha1 with a git-svn checkout, it should be used as is. 1206 # Given a git sha1 with a git-svn checkout, it should be used as is.
1176 self.assertEquals(git_svn_scm.GetUsableRev(self.fake_hash_1, options), 1207 self.assertEquals(git_svn_scm.GetUsableRev(self.fake_hash_1, options),
1177 self.fake_hash_1) 1208 self.fake_hash_1)
1178 # We currently check for seemingly valid SVN revisions by assuming 6 digit 1209 # We currently check for seemingly valid SVN revisions by assuming 6 digit
1179 # numbers, so assure that numeric revs >= 1000000 don't work. 1210 # numbers, so assure that numeric revs >= 1000000 don't work.
1180 self.assertRaises(gclient_scm.gclient_utils.Error, 1211 self.assertRaises(gclient_scm.gclient_utils.Error,
1181 git_svn_scm.GetUsableRev, too_big, options) 1212 git_svn_scm.GetUsableRev, too_big, options)
1182 1213
1214 def testGetRemoteURL(self):
1215 options = self.Options(verbose=True)
1216 self.mox.StubOutWithMock(gclient_scm.GitWrapper, '_Capture', True)
1217 git_scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
1218 relpath=self.relpath)
1219 git_scm._Capture(['remote', '-v']).AndReturn(
1220 """
1221 origin %s (fetch)
1222 origin %s (push)
iannucci 2013/11/13 06:26:30 nit: you could do %(url)s in the string and then s
borenet 2013/11/13 19:12:24 Done. I'll leave the "origin" --> REMOTE_NAME refa
1223 """ % (git_scm.url, git_scm.url))
1224
1225 self.mox.ReplayAll()
1226
1227 self.assertEquals(git_scm.GetRemoteURL(options), self.url)
1228
1183 1229
1184 class UnmanagedGitWrapperTestCase(BaseGitWrapperTestCase): 1230 class UnmanagedGitWrapperTestCase(BaseGitWrapperTestCase):
1185 def testUpdateUpdate(self): 1231 def testUpdateUpdate(self):
1186 if not self.enabled: 1232 if not self.enabled:
1187 return 1233 return
1188 options = self.Options() 1234 options = self.Options()
1189 expected_file_list = [] 1235 expected_file_list = []
1190 scm = gclient_scm.CreateSCM(url=self.url, root_dir=self.root_dir, 1236 scm = gclient_scm.CreateSCM(url=self.url, root_dir=self.root_dir,
1191 relpath=self.relpath) 1237 relpath=self.relpath)
1192 file_list = [] 1238 file_list = []
1193 options.revision = 'unmanaged' 1239 options.revision = 'unmanaged'
1194 scm.update(options, (), file_list) 1240 scm.update(options, (), file_list)
1195 self.assertEquals(file_list, expected_file_list) 1241 self.assertEquals(file_list, expected_file_list)
1196 self.assertEquals(scm.revinfo(options, (), None), 1242 self.assertEquals(scm.revinfo(options, (), None),
1197 '069c602044c5388d2d15c3f875b057c852003458') 1243 '069c602044c5388d2d15c3f875b057c852003458')
1198 self.checkstdout('________ unmanaged solution; skipping .\n') 1244 self.checkstdout('________ unmanaged solution; skipping .\n')
1199 1245
1200 1246
1201 if __name__ == '__main__': 1247 if __name__ == '__main__':
1202 if '-v' in sys.argv: 1248 if '-v' in sys.argv:
1203 logging.basicConfig( 1249 logging.basicConfig(
1204 level=logging.DEBUG, 1250 level=logging.DEBUG,
1205 format='%(asctime).19s %(levelname)s %(filename)s:' 1251 format='%(asctime).19s %(levelname)s %(filename)s:'
1206 '%(lineno)s %(message)s') 1252 '%(lineno)s %(message)s')
1207 unittest.main() 1253 unittest.main()
1208 1254
1209 # vim: ts=2:sw=2:tw=80:et: 1255 # vim: ts=2:sw=2:tw=80:et:
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698