From b6f068c62e82a11e9403152aab558868950867c7 Mon Sep 17 00:00:00 2001 From: Arie Date: Sun, 9 Oct 2016 13:11:06 +0300 Subject: [PATCH] Re-enable the duplicate_pipeline test Created separate class for it to use the new config in fixtures named 'duplicate-pipeline'. Also, modified it to use the new history assertion. Change-Id: If6d9ac502122de1022efbebf91abd83f947b940e --- .../git/common-config/zuul.yaml | 46 ++++++++++++++++ .../duplicate-pipeline/git/org_project/README | 1 + .../config/duplicate-pipeline/main.yaml | 6 +++ tests/test_scheduler.py | 52 ++++++++++--------- 4 files changed, 81 insertions(+), 24 deletions(-) create mode 100755 tests/fixtures/config/duplicate-pipeline/git/common-config/zuul.yaml create mode 100755 tests/fixtures/config/duplicate-pipeline/git/org_project/README create mode 100755 tests/fixtures/config/duplicate-pipeline/main.yaml diff --git a/tests/fixtures/config/duplicate-pipeline/git/common-config/zuul.yaml b/tests/fixtures/config/duplicate-pipeline/git/common-config/zuul.yaml new file mode 100755 index 0000000000..bc88b06170 --- /dev/null +++ b/tests/fixtures/config/duplicate-pipeline/git/common-config/zuul.yaml @@ -0,0 +1,46 @@ +- pipeline: + name: dup1 + manager: independent + success-message: Build succeeded (dup1). + source: + gerrit + trigger: + gerrit: + - event: change-restored + success: + gerrit: + verified: 1 + failure: + gerrit: + verified: -1 + +- pipeline: + name: dup2 + manager: independent + success-message: Build succeeded (dup2). + source: + gerrit + trigger: + gerrit: + - event: change-restored + success: + gerrit: + verified: 1 + failure: + gerrit: + verified: -1 + +- job: + name: project-test1 + +- project: + name: org/project + dup1: + queue: integrated + jobs: + - project-test1 + + dup2: + queue: integrated + jobs: + - project-test1 diff --git a/tests/fixtures/config/duplicate-pipeline/git/org_project/README b/tests/fixtures/config/duplicate-pipeline/git/org_project/README new file mode 100755 index 0000000000..9daeafb986 --- /dev/null +++ b/tests/fixtures/config/duplicate-pipeline/git/org_project/README @@ -0,0 +1 @@ +test diff --git a/tests/fixtures/config/duplicate-pipeline/main.yaml b/tests/fixtures/config/duplicate-pipeline/main.yaml new file mode 100755 index 0000000000..ba2d8f5291 --- /dev/null +++ b/tests/fixtures/config/duplicate-pipeline/main.yaml @@ -0,0 +1,6 @@ +- tenant: + name: tenant-duplicate + source: + gerrit: + config-repos: + - common-config diff --git a/tests/test_scheduler.py b/tests/test_scheduler.py index e3a7552e57..2f132281b2 100755 --- a/tests/test_scheduler.py +++ b/tests/test_scheduler.py @@ -109,30 +109,6 @@ class TestScheduler(ZuulTestCase): self.assertEqual(self.getJobFromHistory('project-test1').node, 'image2') - @skip("Disabled for early v3 development") - def test_duplicate_pipelines(self): - "Test that a change matching multiple pipelines works" - - A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A') - self.fake_gerrit.addEvent(A.getChangeRestoredEvent()) - self.waitUntilSettled() - - self.assertEqual(len(self.history), 2) - self.history[0].name == 'project-test1' - self.history[1].name == 'project-test1' - - self.assertEqual(len(A.messages), 2) - if 'dup1/project-test1' in A.messages[0]: - self.assertIn('dup1/project-test1', A.messages[0]) - self.assertNotIn('dup2/project-test1', A.messages[0]) - self.assertNotIn('dup1/project-test1', A.messages[1]) - self.assertIn('dup2/project-test1', A.messages[1]) - else: - self.assertIn('dup1/project-test1', A.messages[1]) - self.assertNotIn('dup2/project-test1', A.messages[1]) - self.assertNotIn('dup1/project-test1', A.messages[0]) - self.assertIn('dup2/project-test1', A.messages[0]) - def test_parallel_changes(self): "Test that changes are tested in parallel and merged in series" @@ -4687,3 +4663,31 @@ For CI problems and help debugging, contact ci@example.org""" self.assertIn( '- docs-draft-test2 https://server/job/docs-draft-test2/1/', body[3]) + + +class TestDuplicatePipeline(ZuulTestCase): + tenant_config_file = 'config/duplicate-pipeline/main.yaml' + + def test_duplicate_pipelines(self): + "Test that a change matching multiple pipelines works" + + A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A') + self.fake_gerrit.addEvent(A.getChangeRestoredEvent()) + self.waitUntilSettled() + + self.assertHistory([ + dict(name='project-test1', result='SUCCESS', changes='1,1', + pipeline='dup1'), + dict(name='project-test1', result='SUCCESS', changes='1,1', + pipeline='dup2'), + ]) + + self.assertEqual(len(A.messages), 2) + + self.assertIn('dup1', A.messages[0]) + self.assertNotIn('dup2', A.messages[0]) + self.assertIn('project-test1', A.messages[0]) + + self.assertIn('dup2', A.messages[1]) + self.assertNotIn('dup1', A.messages[1]) + self.assertIn('project-test1', A.messages[1])