| Index: tests/gclient_scm_test.py
|
| diff --git a/tests/gclient_scm_test.py b/tests/gclient_scm_test.py
|
| index 370e75f39e4c95f5bbc0eaea1fe34c23cf48db2d..f8516dba95fe93193931daaf0fc5446b631e9f81 100755
|
| --- a/tests/gclient_scm_test.py
|
| +++ b/tests/gclient_scm_test.py
|
| @@ -1376,6 +1376,80 @@ class UnmanagedGitWrapperTestCase(BaseGitWrapperTestCase):
|
| self.checkstdout('________ unmanaged solution; skipping .\n')
|
|
|
|
|
| +class GitParseRevisionTestCase(unittest.TestCase):
|
| + """Tests the 'GitWrapper._ResolveLocalRef' function."""
|
| +
|
| + def setUp(self):
|
| + self.repo = gclient_scm.GitWrapper('fake/fake.git')
|
| +
|
| + def _assertMapped(self, revision):
|
| + self.assertTrue(self.repo._ParseRevision(revision)['mapped'])
|
| + def _assertNotMapped(self, revision):
|
| + self.assertFalse(self.repo._ParseRevision(revision)['mapped'])
|
| +
|
| + def testLocalRefs(self):
|
| + self._assertMapped('refs/heads/master')
|
| + self._assertMapped('refs/heads/some_branch')
|
| + self._assertMapped('origin/master')
|
| + self._assertMapped('refs/remotes/origin/master')
|
| +
|
| + def testRemoteRefs(self):
|
| + self._assertNotMapped('refs/remotes/other/master')
|
| + self._assertNotMapped('refs/other')
|
| +
|
| + def testNonRefs(self):
|
| + self._assertMapped('1d229271928d3f9e2bb0375bd6ce5db6c6d348d9')
|
| + self._assertMapped('1d2292')
|
| + self._assertMapped('my_branch')
|
| +
|
| + def testFetchRefspec(self):
|
| + def r(revision):
|
| + return self.repo._ParseRevision(revision)['fetch_refspec']
|
| +
|
| + self.assertEquals(r('master'), 'master')
|
| + self.assertEquals(r('refs/heads/master'), 'master')
|
| + self.assertEquals(r('refs/remotes/origin/master'), 'master')
|
| + self.assertEquals(r('refs/other'), 'refs/other:refs/other')
|
| + self.assertEquals(
|
| + r('refs/remotes/other/master'),
|
| + 'refs/remotes/other/master:refs/remotes/other/master')
|
| + self.assertEquals(
|
| + r('refs/for/master'),
|
| + 'refs/for/master:refs/for/master')
|
| +
|
| + def testType(self):
|
| + def assertBranch(rev):
|
| + self.assertEquals(self.repo._ParseRevision(rev)['type'], 'branch')
|
| + def assertHash(rev):
|
| + self.assertEquals(self.repo._ParseRevision(rev)['type'], 'hash')
|
| +
|
| + assertBranch('refs/heads/master')
|
| + assertBranch('refs/remotes/origin/master')
|
| + assertBranch('origin/master')
|
| + assertBranch('refs/heads/some_branch')
|
| + assertBranch('refs/remotes/origin/some_branch')
|
| + assertBranch('origin/some_branch')
|
| +
|
| + assertHash('1d229271928d3f9e2bb0375bd6ce5db6c6d348d9')
|
| + assertHash('1d22927')
|
| +
|
| + def testRevisionLocalization(self):
|
| + def r(revision):
|
| + return self.repo._ParseRevision(revision)['revision']
|
| +
|
| + self.assertEquals(r('refs/heads/master'), 'refs/heads/master')
|
| + self.assertEquals(
|
| + r('refs/remotes/origin/master'),
|
| + 'refs/remotes/origin/master')
|
| + self.assertEquals(r('origin/master'), 'refs/heads/master')
|
| + self.assertEquals(r('origin/other'), 'refs/heads/other')
|
| +
|
| + self.assertEquals(
|
| + r('1d229271928d3f9e2bb0375bd6ce5db6c6d348d9'),
|
| + '1d229271928d3f9e2bb0375bd6ce5db6c6d348d9')
|
| + self.assertEquals(r('1d22927'), '1d22927')
|
| +
|
| +
|
| if __name__ == '__main__':
|
| if '-v' in sys.argv:
|
| logging.basicConfig(
|
|
|