Merge "Add support for Gerrit v2.16's change URL schema"
This commit is contained in:
commit
be4dc6e9d2
|
@ -22,7 +22,7 @@ from tests.base import (
|
|||
class TestGerritCRD(ZuulTestCase):
|
||||
tenant_config_file = 'config/single-tenant/main.yaml'
|
||||
|
||||
def test_crd_gate(self):
|
||||
def _test_crd_gate(self, url_fmt):
|
||||
"Test cross-repo dependencies"
|
||||
A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A')
|
||||
B = self.fake_gerrit.addFakeChange('org/project2', 'master', 'B')
|
||||
|
@ -52,9 +52,9 @@ class TestGerritCRD(ZuulTestCase):
|
|||
A.setDependsOn(AM1, 1)
|
||||
AM1.setDependsOn(AM2, 1)
|
||||
|
||||
# So that at least one test uses the /#/c/ form of the url,
|
||||
# use it here.
|
||||
url = 'https://%s/#/c/%s' % (B.gerrit.server, B.number)
|
||||
url = url_fmt.format(baseurl=B.gerrit.baseurl.rstrip('/'),
|
||||
project=B.project,
|
||||
change_no=B.number)
|
||||
A.data['commitMessage'] = '%s\n\nDepends-On: %s\n' % (
|
||||
A.subject, url)
|
||||
|
||||
|
@ -91,6 +91,20 @@ class TestGerritCRD(ZuulTestCase):
|
|||
'project-merge', 'org/project1').changes
|
||||
self.assertEqual(changes, '2,1 1,1')
|
||||
|
||||
# Different versions of Gerrit have used 3 different URL schemata for
|
||||
# changes - repeat the simple test on each of the 3 to ensure they can be
|
||||
# parsed, the other tests just use the default URL schema provided in
|
||||
# FakeGerritChange.data['url'] .
|
||||
|
||||
def test_crd_gate_url_schema1(self):
|
||||
self._test_crd_gate('{baseurl}/{change_no}')
|
||||
|
||||
def test_crd_gate_url_schema2(self):
|
||||
self._test_crd_gate('{baseurl}/#/c/{change_no}')
|
||||
|
||||
def test_crd_gate_url_schema3(self):
|
||||
self._test_crd_gate('{baseurl}/c/{project}/+/{change_no}/')
|
||||
|
||||
def test_crd_gate_triangle(self):
|
||||
A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A')
|
||||
B = self.fake_gerrit.addFakeChange('org/project2', 'master', 'B')
|
||||
|
|
|
@ -38,7 +38,7 @@ class GerritSource(BaseSource):
|
|||
prefix_ui += '/'
|
||||
|
||||
self.change_re = re.compile(
|
||||
r"/%s(\#\/c\/)?(\d+)[\w]*" % prefix_ui)
|
||||
r"/%s(\#\/c\/|c\/.*\/\+\/)?(\d+)[\w]*" % prefix_ui)
|
||||
|
||||
def getRefSha(self, project, ref):
|
||||
return self.connection.getRefSha(project, ref)
|
||||
|
|
Loading…
Reference in New Issue