git cl patch: support short CL URLs.
Change-Id: I71ae8e94ec0cc5d880c002c7187351ac6ee2c2b3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2152218
Auto-Submit: Andrii Shyshkalov <tandrii@google.com>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py
index a91c07f..0ddc5a9 100755
--- a/tests/git_cl_test.py
+++ b/tests/git_cl_test.py
@@ -337,8 +337,8 @@
class TestParseIssueURL(unittest.TestCase):
- def _validate(self, parsed, issue=None, patchset=None, hostname=None,
- fail=False):
+ def _test(self, arg, issue=None, patchset=None, hostname=None, fail=False):
+ parsed = git_cl.ParseIssueNumberArgument(arg)
self.assertIsNotNone(parsed)
if fail:
self.assertFalse(parsed.valid)
@@ -348,39 +348,40 @@
self.assertEqual(parsed.patchset, patchset)
self.assertEqual(parsed.hostname, hostname)
- def test_ParseIssueNumberArgument(self):
- def test(arg, *args, **kwargs):
- self._validate(git_cl.ParseIssueNumberArgument(arg), *args, **kwargs)
+ def test_basic(self):
+ self._test('123', 123)
+ self._test('', fail=True)
+ self._test('abc', fail=True)
+ self._test('123/1', fail=True)
+ self._test('123a', fail=True)
+ self._test('ssh://chrome-review.source.com/#/c/123/4/', fail=True)
+ self._test('ssh://chrome-review.source.com/c/123/1/', fail=True)
- test('123', 123)
- test('', fail=True)
- test('abc', fail=True)
- test('123/1', fail=True)
- test('123a', fail=True)
- test('ssh://chrome-review.source.com/#/c/123/4/', fail=True)
+ def test_gerrit_url(self):
+ self._test('https://codereview.source.com/123', 123, None,
+ 'codereview.source.com')
+ self._test('http://chrome-review.source.com/c/123', 123, None,
+ 'chrome-review.source.com')
+ self._test('https://chrome-review.source.com/c/123/', 123, None,
+ 'chrome-review.source.com')
+ self._test('https://chrome-review.source.com/c/123/4', 123, 4,
+ 'chrome-review.source.com')
+ self._test('https://chrome-review.source.com/#/c/123/4', 123, 4,
+ 'chrome-review.source.com')
+ self._test('https://chrome-review.source.com/c/123/4', 123, 4,
+ 'chrome-review.source.com')
+ self._test('https://chrome-review.source.com/123', 123, None,
+ 'chrome-review.source.com')
+ self._test('https://chrome-review.source.com/123/4', 123, 4,
+ 'chrome-review.source.com')
- test('https://codereview.source.com/123',
- 123, None, 'codereview.source.com')
- test('http://chrome-review.source.com/c/123',
- 123, None, 'chrome-review.source.com')
- test('https://chrome-review.source.com/c/123/',
- 123, None, 'chrome-review.source.com')
- test('https://chrome-review.source.com/c/123/4',
- 123, 4, 'chrome-review.source.com')
- test('https://chrome-review.source.com/#/c/123/4',
- 123, 4, 'chrome-review.source.com')
- test('https://chrome-review.source.com/c/123/4',
- 123, 4, 'chrome-review.source.com')
- test('https://chrome-review.source.com/123',
- 123, None, 'chrome-review.source.com')
- test('https://chrome-review.source.com/123/4',
- 123, 4, 'chrome-review.source.com')
+ self._test('https://chrome-review.source.com/bad/123/4', fail=True)
+ self._test('https://chrome-review.source.com/c/123/1/whatisthis', fail=True)
+ self._test('https://chrome-review.source.com/c/abc/', fail=True)
- test('https://chrome-review.source.com/bad/123/4', fail=True)
- test('https://chrome-review.source.com/c/123/1/whatisthis', fail=True)
- test('https://chrome-review.source.com/c/abc/', fail=True)
- test('ssh://chrome-review.source.com/c/123/1/', fail=True)
-
+ def test_short_urls(self):
+ self._test('https://crrev.com/c/2151934', 2151934, None,
+ 'chromium-review.googlesource.com')
class GitCookiesCheckerTest(unittest.TestCase):