Support --target-branch option to git-cl upload for Rietveld
This is similar to the Gerrit behavior in that we default to master,
unless the remote upstream is a branch head.
BUG=435702
Review URL: https://codereview.chromium.org/822503005
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@293807 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py
index 36730bc..42231e9 100755
--- a/tests/git_cl_test.py
+++ b/tests/git_cl_test.py
@@ -756,6 +756,57 @@
actual.append(obj.description)
self.assertEqual(expected, actual)
+ def test_get_target_ref(self):
+ # Check remote or remote branch not present.
+ self.assertEqual(None, git_cl.GetTargetRef('origin', None, 'master', None))
+ self.assertEqual(None, git_cl.GetTargetRef(None,
+ 'refs/remotes/origin/master',
+ 'master', None))
+
+ # Check default target refs for branches.
+ self.assertEqual('refs/heads/master',
+ git_cl.GetTargetRef('origin', 'refs/remotes/origin/master',
+ None, None))
+ self.assertEqual('refs/heads/master',
+ git_cl.GetTargetRef('origin', 'refs/remotes/origin/lkgr',
+ None, None))
+ self.assertEqual('refs/heads/master',
+ git_cl.GetTargetRef('origin', 'refs/remotes/origin/lkcr',
+ None, None))
+ self.assertEqual('refs/branch-heads/123',
+ git_cl.GetTargetRef('origin',
+ 'refs/remotes/branch-heads/123',
+ None, None))
+ self.assertEqual('refs/diff/test',
+ git_cl.GetTargetRef('origin',
+ 'refs/remotes/origin/refs/diff/test',
+ None, None))
+
+ # Check target refs for user-specified target branch.
+ for branch in ('branch-heads/123', 'remotes/branch-heads/123',
+ 'refs/remotes/branch-heads/123'):
+ self.assertEqual('refs/branch-heads/123',
+ git_cl.GetTargetRef('origin',
+ 'refs/remotes/origin/master',
+ branch, None))
+ for branch in ('origin/master', 'remotes/origin/master',
+ 'refs/remotes/origin/master'):
+ self.assertEqual('refs/heads/master',
+ git_cl.GetTargetRef('origin',
+ 'refs/remotes/branch-heads/123',
+ branch, None))
+ for branch in ('master', 'heads/master', 'refs/heads/master'):
+ self.assertEqual('refs/heads/master',
+ git_cl.GetTargetRef('origin',
+ 'refs/remotes/branch-heads/123',
+ branch, None))
+
+ # Check target refs for pending prefix.
+ self.assertEqual('prefix/heads/master',
+ git_cl.GetTargetRef('origin', 'refs/remotes/origin/master',
+ None, 'prefix/'))
+
+
if __name__ == '__main__':
git_cl.logging.basicConfig(
level=git_cl.logging.DEBUG if '-v' in sys.argv else git_cl.logging.ERROR)