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

Unified Diff: tests/gclient_scm_test.py

Issue 7918027: Add a --unmanaged flag to gclient config to allow the main solution to be unmanaged by the scm. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools/
Patch Set: '' Created 9 years, 3 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') | 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
===================================================================
--- tests/gclient_scm_test.py (revision 101995)
+++ tests/gclient_scm_test.py (working copy)
@@ -442,8 +442,8 @@
('________ found .hg directory; skipping %s\n' % self.relpath))
-class GitWrapperTestCase(GCBaseTestCase, StdoutCheck, TestCaseUtils,
- unittest.TestCase):
+class BaseGitWrapperTestCase(GCBaseTestCase, StdoutCheck, TestCaseUtils,
+ unittest.TestCase):
"""This class doesn't use pymox."""
class OptionsObject(object):
def __init__(self, verbose=False, revision=None):
@@ -543,6 +543,8 @@
unittest.TestCase.tearDown(self)
rmtree(self.root_dir)
+
+class ManagedGitWrapperTestCase(BaseGitWrapperTestCase):
def testDir(self):
members = [
'FullUrlForRelativeUrl', 'GetRevisionDate', 'RunCommand',
@@ -823,6 +825,64 @@
self.assertEquals(rev_info, '069c602044c5388d2d15c3f875b057c852003458')
+class UnmanagedGitWrapperTestCase(BaseGitWrapperTestCase):
+ def testUpdateCheckout(self):
+ if not self.enabled:
+ return
+ options = self.Options(verbose=True)
+ root_dir = gclient_scm.os.path.realpath(tempfile.mkdtemp())
+ relpath = 'foo'
+ base_path = join(root_dir, relpath)
+ url = join(self.base_path, '.git')
+ try:
+ scm = gclient_scm.CreateSCM(url=url, root_dir=root_dir,
+ relpath=relpath)
+ file_list = []
+ options.revision = 'unmanaged'
+ scm.update(options, (), file_list)
+ self.assertEquals(len(file_list), 2)
+ self.assert_(gclient_scm.os.path.isfile(join(base_path, 'a')))
+ self.assertEquals(scm.revinfo(options, (), None),
+ '069c602044c5388d2d15c3f875b057c852003458')
+ finally:
+ rmtree(root_dir)
+ msg1 = (
+ "\n_____ foo at refs/heads/master\n\n"
+ "________ running 'git clone -b master --verbose %s %s' in '%s'\n"
+ "Initialized empty Git repository in %s\n") % (
+ join(self.root_dir, '.', '.git'),
+ join(root_dir, 'foo'),
+ root_dir,
+ join(gclient_scm.os.path.realpath(root_dir), 'foo', '.git') + '/')
+ msg2 = (
+ "\n_____ foo at refs/heads/master\n\n"
+ "________ running 'git clone -b master --verbose %s %s' in '%s'\n"
+ "Cloning into %s...\ndone.\n") % (
+ join(self.root_dir, '.', '.git'),
+ join(root_dir, 'foo'),
+ root_dir,
+ join(gclient_scm.os.path.realpath(root_dir), 'foo'))
+ out = sys.stdout.getvalue()
+ sys.stdout.close()
+ sys.stdout = self._old_stdout
+ self.assertTrue(out in (msg1, msg2), (out, msg1, msg2))
+
+ def testUpdateUpdate(self):
+ if not self.enabled:
+ return
+ options = self.Options()
+ expected_file_list = []
+ scm = gclient_scm.CreateSCM(url=self.url, root_dir=self.root_dir,
+ relpath=self.relpath)
+ file_list = []
+ options.revision = 'unmanaged'
+ scm.update(options, (), file_list)
+ self.assertEquals(file_list, expected_file_list)
+ self.assertEquals(scm.revinfo(options, (), None),
+ '069c602044c5388d2d15c3f875b057c852003458')
+ self.checkstdout('________ unmanaged solution; skipping .\n')
+
+
if __name__ == '__main__':
if '-v' in sys.argv:
logging.basicConfig(
« no previous file with comments | « gclient_scm.py ('k') | tests/gclient_smoketest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698