[git-cl] add support for hashtags
If a commit subject contains [hashtags], include them in Gerrit CL.
Replace consecutive non-alphanums with dash.
Also add --hashtag flag for explicit hashtagging.
Bug:
Change-Id: I25aed286013043263f959ff340a5b5478faa0f27
Reviewed-on: https://chromium-review.googlesource.com/764974
Commit-Queue: Nodir Turakulov <nodir@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py
index 09adc57..8bd07ef 100755
--- a/tests/git_cl_test.py
+++ b/tests/git_cl_test.py
@@ -618,6 +618,7 @@
self.maxDiff = 10000
self.assertEqual(by_line(sys.stdout.getvalue().strip()), by_line(expected))
+
class TestGitCl(TestCase):
def setUp(self):
super(TestGitCl, self).setUp()
@@ -1916,6 +1917,47 @@
self.assertEquals(5, record_calls.times_called)
self.assertEquals(0, ret)
+ def test_get_hash_tags(self):
+ cases = [
+ ('', []),
+ ('a', []),
+ ('[a]', ['a']),
+ ('[aa]', ['aa']),
+ ('[a ]', ['a']),
+ ('[a- ]', ['a']),
+ ('[a- b]', ['a-b']),
+ ('[a--b]', ['a-b']),
+ ('[a', []),
+ ('[a]x', ['a']),
+ ('[aa]x', ['aa']),
+ ('[a b]', ['a-b']),
+ ('[a b]', ['a-b']),
+ ('[a__b]', ['a-b']),
+ ('[a] x', ['a']),
+ ('[a][b]', ['a', 'b']),
+ ('[a] [b]', ['a', 'b']),
+ ('[a][b]x', ['a', 'b']),
+ ('[a][b] x', ['a', 'b']),
+ ('[a]\n[b]', ['a']),
+ ('[a\nb]', []),
+ ('[a][', ['a']),
+ ('Revert "[a] feature"', ['a']),
+ ('Reland "[a] feature"', ['a']),
+ ('Revert: [a] feature', ['a']),
+ ('Reland: [a] feature', ['a']),
+ ('Revert "Reland: [a] feature"', ['a']),
+ ('Foo: feature', ['foo']),
+ ('Foo Bar: feature', ['foo-bar']),
+ ('Revert "Foo bar: feature"', ['foo-bar']),
+ ('Reland "Foo bar: feature"', ['foo-bar']),
+ ]
+ for desc, expected in cases:
+ actual = git_cl._GerritChangelistImpl.GetHashTags(desc)
+ self.assertEqual(
+ actual,
+ expected,
+ 'GetHashTags(%r) == %r, expected %r' % (desc, actual, expected))
+
def test_gerrit_change_id(self):
self.calls = [
((['git', 'write-tree'], ),