From c687e9ae8b7aaa600be1a19ca5b5d32bba189e3b Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 25 Sep 2018 16:42:56 +0200 Subject: [PATCH] [IMP] runbot_merge: support @ and # prefixes to delegate= logins --- runbot_merge/models/pull_requests.py | 5 ++++- runbot_merge/tests/test_basic.py | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/runbot_merge/models/pull_requests.py b/runbot_merge/models/pull_requests.py index a42c21b7..3d86c454 100644 --- a/runbot_merge/models/pull_requests.py +++ b/runbot_merge/models/pull_requests.py @@ -469,7 +469,10 @@ class PullRequests(models.Model): if flag == '+': return ('delegate', True) elif param: - return ('delegate', param.split(',')) + return ('delegate', [ + p.lstrip('#@') + for p in param.split(',') + ]) elif name in ('p', 'priority'): if param in ('0', '1', '2'): return ('priority', int(param)) diff --git a/runbot_merge/tests/test_basic.py b/runbot_merge/tests/test_basic.py index a1740260..de5f89f6 100644 --- a/runbot_merge/tests/test_basic.py +++ b/runbot_merge/tests/test_basic.py @@ -1674,6 +1674,22 @@ class TestReviewing(object): ('number', '=', prx.number) ]).state == 'ready' + def test_delegate_prefixes(self, env, repo): + m = repo.make_commit(None, 'initial', None, tree={'m': 'm'}) + repo.make_ref('heads/master', m) + + c = repo.make_commit(m, 'first', None, tree={'m': 'c'}) + prx = repo.make_pr('title', None, target='master', ctid=c, user='user') + prx.post_comment('hansen delegate=foo,@bar,#baz', user='reviewer') + + pr = env['runbot_merge.pull_requests'].search([ + ('repository.name', '=', repo.name), + ('number', '=', prx.number) + ]) + + assert {d.github_login for d in pr.delegates} == {'foo', 'bar', 'baz'} + + def test_actual_review(self, env, repo): """ treat github reviews as regular comments """