Merge "gitlab: support the labeled event"
This commit is contained in:
@@ -1810,7 +1810,7 @@ class FakeGitlabMergeRequest(object):
|
||||
def _updateTimeStamp(self):
|
||||
self.updated_at = datetime.datetime.now()
|
||||
|
||||
def getMergeRequestEvent(self, action):
|
||||
def getMergeRequestEvent(self, action, include_labels=False):
|
||||
name = 'gl_merge_request'
|
||||
data = {
|
||||
'object_kind': 'merge_request',
|
||||
@@ -1829,6 +1829,14 @@ class FakeGitlabMergeRequest(object):
|
||||
'action': action
|
||||
},
|
||||
}
|
||||
if include_labels:
|
||||
data['labels'] = [{'title': label} for label in self.labels]
|
||||
data['changes'] = {
|
||||
'labels': {
|
||||
'previous': [],
|
||||
'current': data['labels']
|
||||
}
|
||||
}
|
||||
return (name, data)
|
||||
|
||||
def getMergeRequestOpenedEvent(self):
|
||||
@@ -1846,6 +1854,10 @@ class FakeGitlabMergeRequest(object):
|
||||
self.approved = False
|
||||
return self.getMergeRequestEvent(action='unapproved')
|
||||
|
||||
def getMergeRequestLabeledEvent(self, labels):
|
||||
self.labels = labels
|
||||
return self.getMergeRequestEvent(action='update', include_labels=True)
|
||||
|
||||
def getMergeRequestCommentedEvent(self, note):
|
||||
self.addNote(note)
|
||||
note_date = self.notes[-1]['created_at'].strftime(
|
||||
|
||||
18
tests/fixtures/layouts/basic-gitlab.yaml
vendored
18
tests/fixtures/layouts/basic-gitlab.yaml
vendored
@@ -32,6 +32,17 @@
|
||||
- approved
|
||||
- unapproved
|
||||
|
||||
- pipeline:
|
||||
name: check-labeled
|
||||
manager: independent
|
||||
trigger:
|
||||
gitlab:
|
||||
- event: gl_merge_request
|
||||
action:
|
||||
- labeled
|
||||
labels:
|
||||
- gateit
|
||||
|
||||
- pipeline:
|
||||
name: post
|
||||
post-review: true
|
||||
@@ -75,6 +86,10 @@
|
||||
name: project-test-approval
|
||||
run: playbooks/project-test-approval.yaml
|
||||
|
||||
- job:
|
||||
name: project-test-labeled
|
||||
run: playbooks/project-test-labeled.yaml
|
||||
|
||||
- project:
|
||||
name: org/project
|
||||
check:
|
||||
@@ -84,6 +99,9 @@
|
||||
check-approval:
|
||||
jobs:
|
||||
- project-test-approval
|
||||
check-labeled:
|
||||
jobs:
|
||||
- project-test-labeled
|
||||
post:
|
||||
jobs:
|
||||
- project-post-job
|
||||
|
||||
@@ -161,6 +161,21 @@ class TestGitlabDriver(ZuulTestCase):
|
||||
zuulvars = job.parameters['zuul']
|
||||
self.assertEqual('check-approval', zuulvars['pipeline'])
|
||||
|
||||
@simple_layout('layouts/basic-gitlab.yaml', driver='gitlab')
|
||||
def test_merge_request_labeled(self):
|
||||
|
||||
A = self.fake_gitlab.openFakeMergeRequest('org/project', 'master', 'A')
|
||||
|
||||
self.fake_gitlab.emitEvent(A.getMergeRequestLabeledEvent(
|
||||
labels=('label1', 'label2')))
|
||||
self.waitUntilSettled()
|
||||
self.assertEqual(0, len(self.history))
|
||||
|
||||
self.fake_gitlab.emitEvent(A.getMergeRequestLabeledEvent(
|
||||
labels=('gateit', )))
|
||||
self.waitUntilSettled()
|
||||
self.assertEqual(1, len(self.history))
|
||||
|
||||
@simple_layout('layouts/basic-gitlab.yaml', driver='gitlab')
|
||||
def test_merge_request_updated_builds_aborted(self):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user