diff options
author | Zuul <zuul@review.opendev.org> | 2020-02-03 20:43:40 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2020-02-03 20:43:40 +0000 |
commit | 5d19601385b0c0948268a684418729056f6b918c (patch) | |
tree | 43fee88af59e1e8381752b05945daf1c4234cf96 /tests | |
parent | d9d36a4f542c5ab913ecac6a0f983fd2bbc2f2cb (diff) | |
parent | 3105144cd6e319f5ea0fb917d9ee05dfa3855259 (diff) | |
download | zuul-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.conf | 33 | ||||
-rw-r--r-- | tests/unit/test_gerrit.py | 44 |
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) |