gitlab: add enqueue/dequeue unit tests

Change-Id: I27ca7d601b1ffe480825e36fe4e44e3ff1fd59db
This commit is contained in:
Fabien Boucher 2020-06-11 16:30:43 +02:00
parent e50b8ebfe7
commit d8d48457fd
1 changed files with 76 additions and 0 deletions

View File

@ -18,6 +18,8 @@ import git
import yaml
import socket
import zuul.rpcclient
from tests.base import ZuulTestCase, simple_layout
from tests.base import ZuulWebFixture
@ -328,3 +330,77 @@ class TestGitlabDriver(ZuulTestCase):
{'name': 'project-post-job2'},
], ordered=False
)
@simple_layout('layouts/basic-gitlab.yaml', driver='gitlab')
def test_client_dequeue_change(self):
client = zuul.rpcclient.RPCClient('127.0.0.1',
self.gearman_server.port)
self.addCleanup(client.shutdown)
self.executor_server.hold_jobs_in_build = True
A = self.fake_gitlab.openFakeMergeRequest('org/project', 'master', 'A')
self.fake_gitlab.emitEvent(A.getMergeRequestOpenedEvent())
self.waitUntilSettled()
client.dequeue(
tenant='tenant-one',
pipeline='check',
project='org/project',
change='%s,%s' % (A.number, A.sha),
ref=None)
self.waitUntilSettled()
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
check_pipeline = tenant.layout.pipelines['check']
self.assertEqual(check_pipeline.getAllItems(), [])
self.assertEqual(self.countJobResults(self.history, 'ABORTED'), 2)
self.executor_server.hold_jobs_in_build = False
self.executor_server.release()
self.waitUntilSettled()
@simple_layout('layouts/basic-gitlab.yaml', driver='gitlab')
def test_client_enqueue_change(self):
A = self.fake_gitlab.openFakeMergeRequest('org/project', 'master', 'A')
client = zuul.rpcclient.RPCClient('127.0.0.1',
self.gearman_server.port)
self.addCleanup(client.shutdown)
r = client.enqueue(tenant='tenant-one',
pipeline='check',
project='org/project',
trigger='gitlab',
change='%s,%s' % (A.number, A.sha))
self.waitUntilSettled()
self.assertEqual(self.getJobFromHistory('project-test1').result,
'SUCCESS')
self.assertEqual(self.getJobFromHistory('project-test2').result,
'SUCCESS')
self.assertEqual(r, True)
@simple_layout('layouts/basic-gitlab.yaml', driver='gitlab')
def test_client_enqueue_ref(self):
repo_path = os.path.join(self.upstream_root, 'org/project')
repo = git.Repo(repo_path)
headsha = repo.head.commit.hexsha
client = zuul.rpcclient.RPCClient('127.0.0.1',
self.gearman_server.port)
self.addCleanup(client.shutdown)
r = client.enqueue_ref(
tenant='tenant-one',
pipeline='post',
project='org/project',
trigger='gitlab',
ref='master',
oldrev='1' * 40,
newrev=headsha)
self.waitUntilSettled()
self.assertEqual(self.getJobFromHistory('project-post-job').result,
'SUCCESS')
self.assertEqual(r, True)