diff options
author | Zuul <zuul@review.opendev.org> | 2022-03-22 12:38:36 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2022-03-22 12:38:36 +0000 |
commit | 4bc161ac29e6dcfe8fae77f64371bdb411c5c3b5 (patch) | |
tree | a35e18e2816b9eff0ae8d0ab0c141b56095bcb1d /tests | |
parent | 64f257c16ff9832fc915fbf46c763d07afa10024 (diff) | |
parent | b2cf5a0b6695f97337b1326e4572c68cf4cb3fef (diff) | |
download | zuul-4bc161ac29e6dcfe8fae77f64371bdb411c5c3b5.tar.gz |
Merge "Items in extra paths should be loaded in dependent changes"
Diffstat (limited to 'tests')
6 files changed, 50 insertions, 0 deletions
diff --git a/tests/fixtures/config/in-repo-dir/git/org_project2/.extra.yaml b/tests/fixtures/config/in-repo-dir/git/org_project2/.extra.yaml new file mode 100644 index 000000000..8f9f230e4 --- /dev/null +++ b/tests/fixtures/config/in-repo-dir/git/org_project2/.extra.yaml @@ -0,0 +1,2 @@ +- job: + name: project2-private-extra-file diff --git a/tests/fixtures/config/in-repo-dir/git/org_project2/.zuul.yaml b/tests/fixtures/config/in-repo-dir/git/org_project2/.zuul.yaml new file mode 100644 index 000000000..b86588e42 --- /dev/null +++ b/tests/fixtures/config/in-repo-dir/git/org_project2/.zuul.yaml @@ -0,0 +1,6 @@ +- project: + name: org/project2 + check: + jobs: + - project2-private-extra-file + - project2-private-extra-dir diff --git a/tests/fixtures/config/in-repo-dir/git/org_project2/README b/tests/fixtures/config/in-repo-dir/git/org_project2/README new file mode 100644 index 000000000..9daeafb98 --- /dev/null +++ b/tests/fixtures/config/in-repo-dir/git/org_project2/README @@ -0,0 +1 @@ +test diff --git a/tests/fixtures/config/in-repo-dir/git/org_project2/extra.d/jobs-private.yaml b/tests/fixtures/config/in-repo-dir/git/org_project2/extra.d/jobs-private.yaml new file mode 100644 index 000000000..b54002121 --- /dev/null +++ b/tests/fixtures/config/in-repo-dir/git/org_project2/extra.d/jobs-private.yaml @@ -0,0 +1,2 @@ +- job: + name: project2-private-extra-dir diff --git a/tests/fixtures/config/in-repo-dir/main.yaml b/tests/fixtures/config/in-repo-dir/main.yaml index 405543295..bf1679769 100644 --- a/tests/fixtures/config/in-repo-dir/main.yaml +++ b/tests/fixtures/config/in-repo-dir/main.yaml @@ -8,6 +8,10 @@ - org/project - org/project1: exclude: project + - org/project2: + extra-config-paths: + - .extra.yaml + - extra.d/ - tenant: name: tenant-two diff --git a/tests/unit/test_v3.py b/tests/unit/test_v3.py index 23c78b3ef..f0df4414e 100644 --- a/tests/unit/test_v3.py +++ b/tests/unit/test_v3.py @@ -2880,6 +2880,41 @@ class TestInRepoConfigDir(ZuulTestCase): ], ordered=True) +class TestExtraConfigInDependent(ZuulTestCase): + # in org/project2, jobs are defined in extra config paths, while + # project is defined in .zuul.yaml + tenant_config_file = 'config/in-repo-dir/main.yaml' + scheduler_count = 1 + + def test_extra_config_in_dependent_change(self): + # Test that when jobs are defined in a extra-config-paths in a repo, if + # another change is dependent on a change of that repo, the jobs should + # still be loaded. + + # Add an empty zuul.yaml here so we are triggering dynamic layout load + A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A', + files={'zuul.yaml': ''}) + B = self.fake_gerrit.addFakeChange('org/project2', 'master', 'B', + files={'zuul.yaml': ''}) + # A Depends-On: B who has private jobs defined in extra-config-paths + A.data['commitMessage'] = '%s\n\nDepends-On: %s\n' % ( + A.subject, B.data['url']) + + self.fake_gerrit.addEvent(A.getPatchsetCreatedEvent(1)) + self.fake_gerrit.addEvent(B.getPatchsetCreatedEvent(1)) + self.waitUntilSettled() + + # Jobs in both changes should be success + self.assertHistory([ + dict(name='project2-private-extra-file', result='SUCCESS', + changes='2,1'), + dict(name='project2-private-extra-dir', result='SUCCESS', + changes='2,1'), + dict(name='project-test1', result='SUCCESS', + changes='2,1 1,1'), + ], ordered=False) + + class TestGlobalRepoState(AnsibleZuulTestCase): config_file = 'zuul-connections-gerrit-and-github.conf' tenant_config_file = 'config/global-repo-state/main.yaml' |