Merge "Fix "reverse" Depends-On detection with new Gerrit URL schema"
This commit is contained in:
commit
65a89f441b
|
@ -18,6 +18,12 @@ from tests.base import (
|
||||||
simple_layout,
|
simple_layout,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
URL_FORMATS = [
|
||||||
|
'{baseurl}/{change_no}',
|
||||||
|
'{baseurl}/#/c/{change_no}',
|
||||||
|
'{baseurl}/c/{project}/+/{change_no}/',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class TestGerritCRD(ZuulTestCase):
|
class TestGerritCRD(ZuulTestCase):
|
||||||
tenant_config_file = 'config/single-tenant/main.yaml'
|
tenant_config_file = 'config/single-tenant/main.yaml'
|
||||||
|
@ -95,15 +101,14 @@ class TestGerritCRD(ZuulTestCase):
|
||||||
# changes - repeat the simple test on each of the 3 to ensure they can be
|
# 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
|
# parsed, the other tests just use the default URL schema provided in
|
||||||
# FakeGerritChange.data['url'] .
|
# FakeGerritChange.data['url'] .
|
||||||
|
def test_crd_gate_url_schema0(self):
|
||||||
|
self._test_crd_gate(URL_FORMATS[0])
|
||||||
|
|
||||||
def test_crd_gate_url_schema1(self):
|
def test_crd_gate_url_schema1(self):
|
||||||
self._test_crd_gate('{baseurl}/{change_no}')
|
self._test_crd_gate(URL_FORMATS[1])
|
||||||
|
|
||||||
def test_crd_gate_url_schema2(self):
|
def test_crd_gate_url_schema2(self):
|
||||||
self._test_crd_gate('{baseurl}/#/c/{change_no}')
|
self._test_crd_gate(URL_FORMATS[2])
|
||||||
|
|
||||||
def test_crd_gate_url_schema3(self):
|
|
||||||
self._test_crd_gate('{baseurl}/c/{project}/+/{change_no}/')
|
|
||||||
|
|
||||||
def test_crd_gate_triangle(self):
|
def test_crd_gate_triangle(self):
|
||||||
A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A')
|
A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A')
|
||||||
|
@ -260,7 +265,7 @@ class TestGerritCRD(ZuulTestCase):
|
||||||
self.assertEqual(A.data['status'], 'MERGED')
|
self.assertEqual(A.data['status'], 'MERGED')
|
||||||
self.assertEqual(A.reported, 2)
|
self.assertEqual(A.reported, 2)
|
||||||
|
|
||||||
def test_crd_gate_reverse(self):
|
def _test_crd_gate_reverse(self, url_fmt):
|
||||||
"Test reverse cross-repo dependencies"
|
"Test reverse cross-repo dependencies"
|
||||||
A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A')
|
A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A')
|
||||||
B = self.fake_gerrit.addFakeChange('org/project2', 'master', 'B')
|
B = self.fake_gerrit.addFakeChange('org/project2', 'master', 'B')
|
||||||
|
@ -269,8 +274,11 @@ class TestGerritCRD(ZuulTestCase):
|
||||||
|
|
||||||
# A Depends-On: B
|
# A Depends-On: B
|
||||||
|
|
||||||
|
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.data['commitMessage'] = '%s\n\nDepends-On: %s\n' % (
|
||||||
A.subject, B.data['url'])
|
A.subject, url)
|
||||||
|
|
||||||
self.fake_gerrit.addEvent(A.addApproval('Approved', 1))
|
self.fake_gerrit.addEvent(A.addApproval('Approved', 1))
|
||||||
self.waitUntilSettled()
|
self.waitUntilSettled()
|
||||||
|
@ -300,6 +308,15 @@ class TestGerritCRD(ZuulTestCase):
|
||||||
'project-merge', 'org/project1').changes
|
'project-merge', 'org/project1').changes
|
||||||
self.assertEqual(changes, '2,1 1,1')
|
self.assertEqual(changes, '2,1 1,1')
|
||||||
|
|
||||||
|
def test_crd_gate_reverse_schema0(self):
|
||||||
|
self._test_crd_gate_reverse(URL_FORMATS[0])
|
||||||
|
|
||||||
|
def test_crd_gate_reverse_schema1(self):
|
||||||
|
self._test_crd_gate_reverse(URL_FORMATS[1])
|
||||||
|
|
||||||
|
def test_crd_gate_reverse_schema2(self):
|
||||||
|
self._test_crd_gate_reverse(URL_FORMATS[2])
|
||||||
|
|
||||||
def test_crd_cycle(self):
|
def test_crd_cycle(self):
|
||||||
"Test cross-repo dependency cycles"
|
"Test cross-repo dependency cycles"
|
||||||
A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A')
|
A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A')
|
||||||
|
|
|
@ -558,6 +558,7 @@ class GerritConnection(BaseConnection):
|
||||||
change.uris = [
|
change.uris = [
|
||||||
'%s/%s' % (baseurl, change.number),
|
'%s/%s' % (baseurl, change.number),
|
||||||
'%s/#/c/%s' % (baseurl, change.number),
|
'%s/#/c/%s' % (baseurl, change.number),
|
||||||
|
'%s/c/%s/+/%s' % (baseurl, change.project.name, change.number),
|
||||||
]
|
]
|
||||||
|
|
||||||
max_ps = 0
|
max_ps = 0
|
||||||
|
|
Loading…
Reference in New Issue