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

Unified Diff: tests/gclient_smoketest.py

Issue 2285003: Add more smoke test for gclient config and gclient revinfo. (Closed)
Patch Set: Created 10 years, 7 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 | « tests/fake_repos.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/gclient_smoketest.py
diff --git a/tests/gclient_smoketest.py b/tests/gclient_smoketest.py
index 4433a5e6f1d3653bedc34ba75d85069bed7a47f9..2befa0a3b289f69a07a3ff8975078ba37ec6dbb9 100755
--- a/tests/gclient_smoketest.py
+++ b/tests/gclient_smoketest.py
@@ -134,13 +134,19 @@ class GClientSmokeBase(unittest.TestCase):
class GClientSmoke(GClientSmokeBase):
- def testCommands(self):
- """This test is to make sure no new command was added."""
+ def testHelp(self):
+ """testHelp: make sure no new command was added."""
result = self.gclient(['help'])
self.assertEquals(1197, len(result[0]))
self.assertEquals(0, len(result[1]))
self.assertEquals(0, result[2])
+ def testUnknown(self):
+ result = self.gclient(['foo'])
+ self.assertEquals(1197, len(result[0]))
+ self.assertEquals(0, len(result[1]))
+ self.assertEquals(0, result[2])
+
def testNotConfigured(self):
res = ('', 'Error: client not configured; see \'gclient config\'\n', 1)
self.check(res, self.gclient(['cleanup']))
@@ -154,10 +160,57 @@ class GClientSmoke(GClientSmokeBase):
self.check(res, self.gclient(['sync']))
self.check(res, self.gclient(['update']))
+ def testConfig(self):
+ p = join(self.root_dir, '.gclient')
+ def test(cmd, expected):
+ if os.path.exists(p):
+ os.remove(p)
+ results = self.gclient(cmd)
+ self.check(('', '', 0), results)
+ self.checkString(expected, open(p, 'rb').read())
+
+ test(['config', self.svn_base + 'trunk/src/'],
+ 'solutions = [\n'
+ ' { "name" : "src",\n'
+ ' "url" : "svn://127.0.0.1/svn/trunk/src",\n'
+ ' "custom_deps" : {\n'
+ ' },\n'
+ ' "safesync_url": ""\n'
+ ' },\n]\n')
+
+ test(['config', self.git_base + 'repo_1', '--name', 'src'],
+ 'solutions = [\n'
+ ' { "name" : "src",\n'
+ ' "url" : "git://127.0.0.1/git/repo_1",\n'
+ ' "custom_deps" : {\n'
+ ' },\n'
+ ' "safesync_url": ""\n'
+ ' },\n]\n')
+
+ test(['config', 'foo', 'faa'],
+ 'solutions = [\n'
+ ' { "name" : "foo",\n'
+ ' "url" : "foo",\n'
+ ' "custom_deps" : {\n'
+ ' },\n'
+ ' "safesync_url": "faa"\n'
+ ' },\n]\n')
+
+ test(['config', '--spec', '["blah blah"]'], '["blah blah"]')
+
+ os.remove(p)
+ results = self.gclient(['config', 'foo', 'faa', 'fuu'])
+ err = ('Usage: gclient.py config [options] [url] [safesync url]\n\n'
+ 'gclient.py: error: Inconsistent arguments. Use either --spec or one'
+ ' or 2 args\n')
+ self.check(('', err, 2), results)
+ self.assertFalse(os.path.exists(join(self.root_dir, '.gclient')))
+
class GClientSmokeSVN(GClientSmokeBase):
- """sync is the most important command. Hence test it more."""
def testSync(self):
+ # TODO(maruel): safesync, multiple solutions, invalid@revisions,
+ # multiple revisions.
self.gclient(['config', self.svn_base + 'trunk/src/'])
# Test unversioned checkout.
results = self.gclient(['sync', '--deps', 'mac'])
@@ -304,6 +357,8 @@ class GClientSmokeSVN(GClientSmokeBase):
class GClientSmokeGIT(GClientSmokeBase):
def testSync(self):
+ # TODO(maruel): safesync, multiple solutions, invalid@revisions,
+ # multiple revisions.
self.gclient(['config', self.git_base + 'repo_1', '--name', 'src'])
# Test unversioned checkout.
results = self.gclient(['sync', '--deps', 'mac'])
@@ -417,6 +472,22 @@ class GClientSmokeGIT(GClientSmokeBase):
self.checkString('', results[1])
self.assertEquals(0, results[2])
+ def testRevInfo(self):
+ # TODO(maruel): Test multiple solutions.
+ self.gclient(['config', self.git_base + 'repo_1', '--name', 'src'])
+ self.gclient(['sync', '--deps', 'mac'])
+ results = self.gclient(['revinfo'])
+ out = ('src: %(base)srepo_1@%(hash1)s;\n'
+ 'src/repo2: %(base)srepo_2@%(hash2)s;\n'
+ 'src/repo2/repo_renamed: %(base)srepo_3@%(hash3)s\n' %
+ {
+ 'base': self.git_base,
+ 'hash1': FAKE.git_hashes['repo_1'][1][0],
+ 'hash2': FAKE.git_hashes['repo_2'][0][0],
+ 'hash3': FAKE.git_hashes['repo_3'][1][0],
+ })
+ self.check((out, '', 0), results)
+
if __name__ == '__main__':
if '-v' in sys.argv:
« no previous file with comments | « tests/fake_repos.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698