summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-02-03 20:43:40 +0000
committerGerrit Code Review <review@openstack.org>2020-02-03 20:43:40 +0000
commit5d19601385b0c0948268a684418729056f6b918c (patch)
tree43fee88af59e1e8381752b05945daf1c4234cf96 /tests
parentd9d36a4f542c5ab913ecac6a0f983fd2bbc2f2cb (diff)
parent3105144cd6e319f5ea0fb917d9ee05dfa3855259 (diff)
downloadzuul-5d19601385b0c0948268a684418729056f6b918c.tar.gz
Merge "Gerrit: poll for merged changes if no stream events"
Diffstat (limited to 'tests')
-rw-r--r--tests/fixtures/zuul-gerrit-no-stream.conf33
-rw-r--r--tests/unit/test_gerrit.py44
2 files changed, 77 insertions, 0 deletions
diff --git a/tests/fixtures/zuul-gerrit-no-stream.conf b/tests/fixtures/zuul-gerrit-no-stream.conf
new file mode 100644
index 000000000..b4416cde6
--- /dev/null
+++ b/tests/fixtures/zuul-gerrit-no-stream.conf
@@ -0,0 +1,33 @@
+[gearman]
+server=127.0.0.1
+
+[statsd]
+# note, use 127.0.0.1 rather than localhost to avoid getting ipv6
+# see: https://github.com/jsocol/pystatsd/issues/61
+server=127.0.0.1
+
+[scheduler]
+tenant_config=main.yaml
+
+[merger]
+git_dir=/tmp/zuul-test/merger-git
+git_user_email=zuul@example.com
+git_user_name=zuul
+
+[executor]
+git_dir=/tmp/zuul-test/executor-git
+
+[connection gerrit]
+driver=gerrit
+server=review.example.com
+user=jenkins
+sshkey=fake_id_rsa_path
+password=badpassword
+stream_events=false
+
+[connection smtp]
+driver=smtp
+server=localhost
+port=25
+default_from=zuul@example.com
+default_to=you@example.com
diff --git a/tests/unit/test_gerrit.py b/tests/unit/test_gerrit.py
index 9cf87d371..b0ff979a2 100644
--- a/tests/unit/test_gerrit.py
+++ b/tests/unit/test_gerrit.py
@@ -376,3 +376,47 @@ class TestChecksApi(ZuulTestCase):
'NOT_RELEVANT')
self.assertEqual(len(A.checks_history), 3)
self.assertEqual(A.data['status'], 'NEW')
+
+
+class TestPolling(ZuulTestCase):
+ config_file = 'zuul-gerrit-no-stream.conf'
+
+ @simple_layout('layouts/gerrit-checks.yaml')
+ def test_config_update(self):
+ # Test that the config is updated via polling when a change
+ # merges without stream-events enabled.
+ in_repo_conf = textwrap.dedent(
+ """
+ - job:
+ name: test-job2
+ parent: test-job
+ - project:
+ check:
+ jobs:
+ - test-job2
+ """)
+
+ file_dict = {'.zuul.yaml': in_repo_conf}
+ A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A',
+ files=file_dict)
+ A.setMerged()
+ self.waitForPoll('gerrit')
+
+ B = self.fake_gerrit.addFakeChange('org/project', 'master', 'B')
+ B.setCheck('zuul:check', reset=True)
+ self.waitForPoll('gerrit')
+ self.waitUntilSettled()
+
+ self.assertEqual(B.checks_history[0]['zuul:check']['state'],
+ 'NOT_STARTED')
+ self.assertEqual(B.checks_history[1]['zuul:check']['state'],
+ 'SCHEDULED')
+ self.assertEqual(B.checks_history[2]['zuul:check']['state'],
+ 'RUNNING')
+ self.assertEqual(B.checks_history[3]['zuul:check']['state'],
+ 'SUCCESSFUL')
+ self.assertEqual(len(B.checks_history), 4)
+ self.assertHistory([
+ dict(name='test-job', result='SUCCESS', changes='2,1'),
+ dict(name='test-job2', result='SUCCESS', changes='2,1'),
+ ], ordered=False)