summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2022-03-22 12:38:36 +0000
committerGerrit Code Review <review@openstack.org>2022-03-22 12:38:36 +0000
commit4bc161ac29e6dcfe8fae77f64371bdb411c5c3b5 (patch)
treea35e18e2816b9eff0ae8d0ab0c141b56095bcb1d /tests
parent64f257c16ff9832fc915fbf46c763d07afa10024 (diff)
parentb2cf5a0b6695f97337b1326e4572c68cf4cb3fef (diff)
downloadzuul-4bc161ac29e6dcfe8fae77f64371bdb411c5c3b5.tar.gz
Merge "Items in extra paths should be loaded in dependent changes"
Diffstat (limited to 'tests')
-rw-r--r--tests/fixtures/config/in-repo-dir/git/org_project2/.extra.yaml2
-rw-r--r--tests/fixtures/config/in-repo-dir/git/org_project2/.zuul.yaml6
-rw-r--r--tests/fixtures/config/in-repo-dir/git/org_project2/README1
-rw-r--r--tests/fixtures/config/in-repo-dir/git/org_project2/extra.d/jobs-private.yaml2
-rw-r--r--tests/fixtures/config/in-repo-dir/main.yaml4
-rw-r--r--tests/unit/test_v3.py35
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'