From 7df5508dbd7f47ce77fd9edc4a395e8a7938cfa5 Mon Sep 17 00:00:00 2001 From: Jan Kubovy Date: Mon, 24 Feb 2020 15:37:21 +0100 Subject: [PATCH] Use scheduler manager consistently in tests To improve consistency and remove `self.sched` and use `self.scheds.first.sched` in all tests. This change only touches tests. Change-Id: I0a8c3f8ad634d1d88f3c68a11e4d5587993f4a0d Story: 2007192 --- tests/base.py | 13 +- tests/unit/test_configloader.py | 99 +++++++------- tests/unit/test_connection.py | 4 +- tests/unit/test_cross_crd.py | 12 +- tests/unit/test_gerrit_crd.py | 12 +- tests/unit/test_gerrit_legacy_crd.py | 10 +- tests/unit/test_git_driver.py | 14 +- tests/unit/test_github_crd.py | 2 +- tests/unit/test_github_driver.py | 34 +++-- tests/unit/test_pagure_driver.py | 16 ++- tests/unit/test_scheduler.py | 195 ++++++++++++++------------- tests/unit/test_v3.py | 32 ++--- tests/unit/test_zuultrigger.py | 18 +-- 13 files changed, 244 insertions(+), 217 deletions(-) diff --git a/tests/base.py b/tests/base.py index 55b324bb8e..44fca45608 100644 --- a/tests/base.py +++ b/tests/base.py @@ -3497,6 +3497,12 @@ class SchedulerTestManager: def __iter__(self): return iter(self.instances) + @property + def first(self) -> SchedulerTestApp: + if len(self.instances) == 0: + raise Exception("No scheduler!") + return self.instances[0] + def filter(self, matcher=None) -> Iterable[SchedulerTestApp]: fcn = None # type: Optional[Callable[[int, SchedulerTestApp], bool]] if type(matcher) == list: @@ -3703,7 +3709,6 @@ class ZuulTestCase(BaseTestCase): self.scheds = SchedulerTestManager() sched_app = self.scheds.create( self.log, self.config, self.zk_config, self.connections) - self.sched = sched_app.sched self.event_queues = sched_app.event_queues + self.event_queues if hasattr(self, 'fake_github'): @@ -4099,7 +4104,7 @@ class ZuulTestCase(BaseTestCase): self.assertNodepoolState() self.assertNoGeneratedKeys() ipm = zuul.manager.independent.IndependentPipelineManager - for tenant in self.sched.abide.tenants.values(): + for tenant in self.scheds.first.sched.abide.tenants.values(): for pipeline in tenant.layout.pipelines.values(): if isinstance(pipeline.manager, ipm): self.assertEqual(len(pipeline.queues), 0) @@ -4418,7 +4423,7 @@ class ZuulTestCase(BaseTestCase): self.log.info("Completed build: %s" % build) for build in self.builds: self.log.info("Running build: %s" % build) - for tenant in self.sched.abide.tenants.values(): + for tenant in self.scheds.first.sched.abide.tenants.values(): for pipeline in tenant.layout.pipelines.values(): for pipeline_queue in pipeline.queues: if len(pipeline_queue.queue) != 0: @@ -4462,7 +4467,7 @@ class ZuulTestCase(BaseTestCase): def assertEmptyQueues(self): # Make sure there are no orphaned jobs - for tenant in self.sched.abide.tenants.values(): + for tenant in self.scheds.first.sched.abide.tenants.values(): for pipeline in tenant.layout.pipelines.values(): for pipeline_queue in pipeline.queues: if len(pipeline_queue.queue) != 0: diff --git a/tests/unit/test_configloader.py b/tests/unit/test_configloader.py index 16c32a8ef6..cf156e156d 100644 --- a/tests/unit/test_configloader.py +++ b/tests/unit/test_configloader.py @@ -38,7 +38,7 @@ class TestTenantSimple(TenantParserTestCase): tenant_config_file = 'config/tenant-parser/simple.yaml' def test_tenant_simple(self): - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(['common-config'], [x.name for x in tenant.config_projects]) self.assertEqual(['org/project1', 'org/project2'], @@ -70,7 +70,7 @@ class TestTenantSimple(TenantParserTestCase): project2_config[1].pipelines['check'].job_list.jobs) def test_variant_description(self): - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') job = tenant.layout.jobs.get("project2-job") self.assertEqual(job[0].variant_description, "") self.assertEqual(job[1].variant_description, "stable") @@ -80,7 +80,7 @@ class TestTenantOverride(TenantParserTestCase): tenant_config_file = 'config/tenant-parser/override.yaml' def test_tenant_override(self): - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(['common-config'], [x.name for x in tenant.config_projects]) self.assertEqual(['org/project1', 'org/project2', 'org/project4'], @@ -116,7 +116,7 @@ class TestTenantGroups(TenantParserTestCase): tenant_config_file = 'config/tenant-parser/groups.yaml' def test_tenant_groups(self): - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(['common-config'], [x.name for x in tenant.config_projects]) self.assertEqual(['org/project1', 'org/project2'], @@ -153,7 +153,7 @@ class TestTenantGroups2(TenantParserTestCase): tenant_config_file = 'config/tenant-parser/groups2.yaml' def test_tenant_groups2(self): - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(['common-config'], [x.name for x in tenant.config_projects]) self.assertEqual(['org/project1', 'org/project2', 'org/project3'], @@ -190,7 +190,7 @@ class TestTenantGroups3(TenantParserTestCase): tenant_config_file = 'config/tenant-parser/groups3.yaml' def test_tenant_groups3(self): - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(False, tenant.exclude_unprotected_branches) self.assertEqual(['common-config'], [x.name for x in tenant.config_projects]) @@ -226,7 +226,7 @@ class TestTenantGroups4(TenantParserTestCase): tenant_config_file = 'config/tenant-parser/groups4.yaml' def test_tenant_groups(self): - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(['common-config'], [x.name for x in tenant.config_projects]) self.assertEqual(['org/project1', 'org/project2'], @@ -255,7 +255,7 @@ class TestTenantGroups4(TenantParserTestCase): A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A') self.fake_gerrit.addEvent(A.getPatchsetCreatedEvent(1)) self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') new_layout = tenant.layout self.assertEqual(old_layout, new_layout) @@ -265,7 +265,7 @@ class TestTenantGroups5(TenantParserTestCase): tenant_config_file = 'config/tenant-parser/groups5.yaml' def test_tenant_single_projet_exclude(self): - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(['common-config'], [x.name for x in tenant.config_projects]) self.assertEqual(['org/project1'], @@ -296,7 +296,7 @@ class TestTenantUnprotectedBranches(TenantParserTestCase): tenant_config_file = 'config/tenant-parser/unprotected-branches.yaml' def test_tenant_unprotected_branches(self): - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(True, tenant.exclude_unprotected_branches) self.assertEqual(['common-config'], @@ -325,7 +325,7 @@ class TestTenantExcludeAll(TenantParserTestCase): """ # The config in org/project5 depends on config in org/project1 so # validate that there are no config errors in that tenant. - tenant_two = self.sched.abide.tenants.get('tenant-two') + tenant_two = self.scheds.first.sched.abide.tenants.get('tenant-two') self.assertEquals( len(tenant_two.layout.loading_errors), 0, "No error should have been accumulated") @@ -335,7 +335,7 @@ class TestTenantConfigBranches(ZuulTestCase): tenant_config_file = 'config/tenant-parser/simple.yaml' def _validate_job(self, job, branch): - tenant_one = self.sched.abide.tenants.get('tenant-one') + tenant_one = self.scheds.first.sched.abide.tenants.get('tenant-one') jobs = tenant_one.layout.getJobs(job) self.assertEquals(len(jobs), 1) self.assertIn(jobs[0].source_context.branch, branch) @@ -353,14 +353,14 @@ class TestTenantConfigBranches(ZuulTestCase): self.create_branch('common-config', 'stable') self.create_branch('common-config', 'feat_x') - self.sched.reconfigure(self.config) + self.scheds.execute(lambda app: app.sched.reconfigure(app.config)) # Job must be defined in master self._validate_job(common_job, 'master') # Reconfigure with load-branch stable for common-config self.newTenantConfig('config/tenant-parser/branch.yaml') - self.sched.reconfigure(self.config) + self.scheds.execute(lambda app: app.sched.reconfigure(app.config)) # Now job must be defined on stable branch self._validate_job(common_job, 'stable') @@ -370,7 +370,7 @@ class TestSplitConfig(ZuulTestCase): tenant_config_file = 'config/split-config/main.yaml' def test_split_config(self): - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertIn('project-test1', tenant.layout.jobs) self.assertIn('project-test2', tenant.layout.jobs) test1 = tenant.layout.getJob('project-test1') @@ -445,7 +445,7 @@ class TestConfigConflict(ZuulTestCase): tenant_config_file = 'config/conflict-config/main.yaml' def test_conflict_config(self): - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') jobs = sorted(tenant.layout.jobs.keys()) self.assertEqual( ['base', 'noop', 'trusted-zuul.yaml-job', @@ -457,9 +457,11 @@ class TestAuthorizationRuleParser(ZuulTestCase): tenant_config_file = 'config/tenant-parser/authorizations.yaml' def test_rules_are_loaded(self): - rules = self.sched.abide.admin_rules - self.assertTrue('auth-rule-one' in rules, self.sched.abide) - self.assertTrue('auth-rule-two' in rules, self.sched.abide) + rules = self.scheds.first.sched.abide.admin_rules + self.assertTrue('auth-rule-one' in rules, + self.scheds.first.sched.abide) + self.assertTrue('auth-rule-two' in rules, + self.scheds.first.sched.abide) claims_1 = {'sub': 'venkman'} claims_2 = {'sub': 'gozer', 'iss': 'another_dimension'} @@ -591,39 +593,32 @@ class TestAuthorizationRuleParserWithTemplating(ZuulTestCase): tenant_config_file = 'config/tenant-parser/authorizations-templating.yaml' def test_rules_are_loaded(self): - rules = self.sched.abide.admin_rules - self.assertTrue('tenant-admin' in rules, self.sched.abide) - self.assertTrue('tenant-admin-complex' in rules, self.sched.abide) + rules = self.scheds.first.sched.abide.admin_rules + self.assertTrue('tenant-admin' in rules, self.scheds.first.sched.abide) + self.assertTrue('tenant-admin-complex' in rules, + self.scheds.first.sched.abide) def test_tenant_substitution(self): claims_1 = {'group': 'tenant-one-admin'} claims_2 = {'group': 'tenant-two-admin'} - rules = self.sched.abide.admin_rules - tenant_one = self.sched.abide.tenants.get('tenant-one') - tenant_two = self.sched.abide.tenants.get('tenant-two') - self.assertTrue(rules['tenant-admin'](claims_1, - tenant_one)) - self.assertTrue(rules['tenant-admin'](claims_2, - tenant_two)) - self.assertTrue(not rules['tenant-admin'](claims_1, - tenant_two)) - self.assertTrue(not rules['tenant-admin'](claims_2, - tenant_one)) + rules = self.scheds.first.sched.abide.admin_rules + tenant_one = self.scheds.first.sched.abide.tenants.get('tenant-one') + tenant_two = self.scheds.first.sched.abide.tenants.get('tenant-two') + self.assertTrue(rules['tenant-admin'](claims_1, tenant_one)) + self.assertTrue(rules['tenant-admin'](claims_2, tenant_two)) + self.assertTrue(not rules['tenant-admin'](claims_1, tenant_two)) + self.assertTrue(not rules['tenant-admin'](claims_2, tenant_one)) def test_tenant_substitution_in_list(self): claims_1 = {'group': ['tenant-one-admin', 'some-other-tenant']} claims_2 = {'group': ['tenant-two-admin', 'some-other-tenant']} - rules = self.sched.abide.admin_rules - tenant_one = self.sched.abide.tenants.get('tenant-one') - tenant_two = self.sched.abide.tenants.get('tenant-two') - self.assertTrue(rules['tenant-admin'](claims_1, - tenant_one)) - self.assertTrue(rules['tenant-admin'](claims_2, - tenant_two)) - self.assertTrue(not rules['tenant-admin'](claims_1, - tenant_two)) - self.assertTrue(not rules['tenant-admin'](claims_2, - tenant_one)) + rules = self.scheds.first.sched.abide.admin_rules + tenant_one = self.scheds.first.sched.abide.tenants.get('tenant-one') + tenant_two = self.scheds.first.sched.abide.tenants.get('tenant-two') + self.assertTrue(rules['tenant-admin'](claims_1, tenant_one)) + self.assertTrue(rules['tenant-admin'](claims_2, tenant_two)) + self.assertTrue(not rules['tenant-admin'](claims_1, tenant_two)) + self.assertTrue(not rules['tenant-admin'](claims_2, tenant_one)) def test_tenant_substitution_in_dict(self): claims_2 = { @@ -633,21 +628,19 @@ class TestAuthorizationRuleParserWithTemplating(ZuulTestCase): } } } - rules = self.sched.abide.admin_rules - tenant_one = self.sched.abide.tenants.get('tenant-one') - tenant_two = self.sched.abide.tenants.get('tenant-two') - self.assertTrue( - not rules['tenant-admin-complex'](claims_2, - tenant_one)) - self.assertTrue( - rules['tenant-admin-complex'](claims_2, tenant_two)) + rules = self.scheds.first.sched.abide.admin_rules + tenant_one = self.scheds.first.sched.abide.tenants.get('tenant-one') + tenant_two = self.scheds.first.sched.abide.tenants.get('tenant-two') + self.assertTrue(not rules['tenant-admin-complex'](claims_2, + tenant_one)) + self.assertTrue(rules['tenant-admin-complex'](claims_2, tenant_two)) class TestTenantExtra(TenantParserTestCase): tenant_config_file = 'config/tenant-parser/extra.yaml' def test_tenant_extra(self): - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertTrue('project2-extra-file' in tenant.layout.jobs) self.assertTrue('project2-extra-dir' in tenant.layout.jobs) diff --git a/tests/unit/test_connection.py b/tests/unit/test_connection.py index 7c9c3df332..d9b84fa6dd 100644 --- a/tests/unit/test_connection.py +++ b/tests/unit/test_connection.py @@ -122,7 +122,7 @@ class TestSQLConnection(ZuulDBTestCase): def check_results(connection_name): # Grab the sa tables - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') reporter = _get_reporter_from_connection_name( tenant.layout.pipelines['check'].success_actions, connection_name @@ -241,7 +241,7 @@ class TestSQLConnection(ZuulDBTestCase): def check_results(connection_name_1, connection_name_2): # Grab the sa tables for resultsdb - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') reporter1 = _get_reporter_from_connection_name( tenant.layout.pipelines['check'].success_actions, connection_name_1 diff --git a/tests/unit/test_cross_crd.py b/tests/unit/test_cross_crd.py index 67d4f3c1bd..70b370e812 100644 --- a/tests/unit/test_cross_crd.py +++ b/tests/unit/test_cross_crd.py @@ -274,7 +274,7 @@ class TestGerritToGithubCRD(ZuulTestCase): self.assertEqual(changes, '1,%s 1,1' % (B.head_sha,)) - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0) def test_crd_check_duplicate(self): @@ -288,7 +288,7 @@ class TestGerritToGithubCRD(ZuulTestCase): # A Depends-On: B A.data['commitMessage'] = '%s\n\nDepends-On: %s\n' % ( A.subject, B.url) - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] # Add two dependent changes... @@ -350,7 +350,7 @@ class TestGerritToGithubCRD(ZuulTestCase): # Make sure the items still share a change queue, and the # first one is not live. - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(len(tenant.layout.pipelines['check'].queues), 1) queue = tenant.layout.pipelines['check'].queues[0] first_item = queue.queue[0] @@ -725,7 +725,7 @@ class TestGithubToGerritCRD(ZuulTestCase): self.assertEqual(changes, '1,1 1,%s' % (A.head_sha,)) - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0) def test_crd_check_duplicate(self): @@ -738,7 +738,7 @@ class TestGithubToGerritCRD(ZuulTestCase): # A Depends-On: B A.editBody('Depends-On: %s\n' % (B.data['url'],)) - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] # Add two dependent changes... @@ -799,7 +799,7 @@ class TestGithubToGerritCRD(ZuulTestCase): # Make sure the items still share a change queue, and the # first one is not live. - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(len(tenant.layout.pipelines['check'].queues), 1) queue = tenant.layout.pipelines['check'].queues[0] first_item = queue.queue[0] diff --git a/tests/unit/test_gerrit_crd.py b/tests/unit/test_gerrit_crd.py index ece197913d..087a583c6f 100644 --- a/tests/unit/test_gerrit_crd.py +++ b/tests/unit/test_gerrit_crd.py @@ -425,7 +425,7 @@ class TestGerritCRD(ZuulTestCase): self.assertEqual(B.reported, 0) self.assertEqual(self.history[0].changes, '2,1 1,1') - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0) def test_crd_check_git_depends(self): @@ -453,7 +453,7 @@ class TestGerritCRD(ZuulTestCase): self.assertEqual(self.history[0].changes, '1,1') self.assertEqual(self.history[-1].changes, '1,1 2,1') - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0) self.assertIn('Build succeeded', A.messages[0]) @@ -464,7 +464,7 @@ class TestGerritCRD(ZuulTestCase): self.executor_server.hold_jobs_in_build = True A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A') B = self.fake_gerrit.addFakeChange('org/project1', 'master', 'B') - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] # Add two git-dependent changes... @@ -520,7 +520,7 @@ class TestGerritCRD(ZuulTestCase): # Make sure the items still share a change queue, and the # first one is not live. - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(len(tenant.layout.pipelines['check'].queues), 1) queue = tenant.layout.pipelines['check'].queues[0] first_item = queue.queue[0] @@ -573,7 +573,7 @@ class TestGerritCRD(ZuulTestCase): # Make sure none of the items share a change queue, and all # are live. - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] self.assertEqual(len(check_pipeline.queues), 3) self.assertEqual(len(check_pipeline.getAllItems()), 3) @@ -767,7 +767,7 @@ class TestGerritCRDAltBaseUrl(ZuulTestCase): self.assertEqual(B.reported, 0) self.assertEqual(self.history[0].changes, '2,1 1,1') - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0) diff --git a/tests/unit/test_gerrit_legacy_crd.py b/tests/unit/test_gerrit_legacy_crd.py index 3bf864c4cc..1a4fdd69e1 100644 --- a/tests/unit/test_gerrit_legacy_crd.py +++ b/tests/unit/test_gerrit_legacy_crd.py @@ -354,7 +354,7 @@ class TestGerritLegacyCRD(ZuulTestCase): self.assertEqual(B.reported, 0) self.assertEqual(self.history[0].changes, '2,1 1,1') - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0) def test_crd_check_git_depends(self): @@ -382,7 +382,7 @@ class TestGerritLegacyCRD(ZuulTestCase): self.assertEqual(self.history[0].changes, '1,1') self.assertEqual(self.history[-1].changes, '1,1 2,1') - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0) self.assertIn('Build succeeded', A.messages[0]) @@ -393,7 +393,7 @@ class TestGerritLegacyCRD(ZuulTestCase): self.executor_server.hold_jobs_in_build = True A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A') B = self.fake_gerrit.addFakeChange('org/project1', 'master', 'B') - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] # Add two git-dependent changes... @@ -449,7 +449,7 @@ class TestGerritLegacyCRD(ZuulTestCase): # Make sure the items still share a change queue, and the # first one is not live. - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(len(tenant.layout.pipelines['check'].queues), 1) queue = tenant.layout.pipelines['check'].queues[0] first_item = queue.queue[0] @@ -502,7 +502,7 @@ class TestGerritLegacyCRD(ZuulTestCase): # Make sure none of the items share a change queue, and all # are live. - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] self.assertEqual(len(check_pipeline.queues), 3) self.assertEqual(len(check_pipeline.getAllItems()), 3) diff --git a/tests/unit/test_git_driver.py b/tests/unit/test_git_driver.py index cc0444757d..06e2ac7c86 100644 --- a/tests/unit/test_git_driver.py +++ b/tests/unit/test_git_driver.py @@ -26,8 +26,8 @@ class TestGitDriver(ZuulTestCase): def setUp(self): super(TestGitDriver, self).setUp() - self.git_connection = self.sched.connections.getSource('git').\ - connection + self.git_connection = self.scheds.first.sched.connections\ + .getSource('git').connection def setup_config(self, config_file: str): config = super(TestGitDriver, self).setup_config(config_file) @@ -35,7 +35,7 @@ class TestGitDriver(ZuulTestCase): return config def test_basic(self): - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') # Check that we have the git source for common-config and the # gerrit source for the project. self.assertEqual('git', tenant.config_projects[0].source.name) @@ -91,8 +91,8 @@ class TestGitDriver(ZuulTestCase): # Let's stop the git Watcher to let us merge some changes commits # We want to verify that config changes are detected for commits # on the range oldrev..newrev - self.sched.connections.getSource('git').connection.\ - watcher_thread._pause = True + self.scheds.first.sched.connections.getSource('git').connection\ + .watcher_thread._pause = True # Add a config change change = { 'name': 'org/project', @@ -114,8 +114,8 @@ class TestGitDriver(ZuulTestCase): 'common-config', 'Adding f2', {'f2': "Content"}) # Restart the git watcher - self.sched.connections.getSource('git').connection.\ - watcher_thread._pause = False + self.scheds.first.sched.connections.getSource('git').connection\ + .watcher_thread._pause = False # Wait for the tenant reconfiguration to happen self.waitForEvent(count) diff --git a/tests/unit/test_github_crd.py b/tests/unit/test_github_crd.py index 197331b685..13b59ccf7f 100644 --- a/tests/unit/test_github_crd.py +++ b/tests/unit/test_github_crd.py @@ -48,7 +48,7 @@ class TestGithubCrossRepoDeps(ZuulTestCase): B.head_sha)) # There should be no more changes in the queue - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0) @simple_layout('layouts/crd-github.yaml', driver='github') diff --git a/tests/unit/test_github_driver.py b/tests/unit/test_github_driver.py index acd1b696b9..d7f9b0a911 100644 --- a/tests/unit/test_github_driver.py +++ b/tests/unit/test_github_driver.py @@ -397,7 +397,7 @@ class TestGithubDriver(ZuulTestCase): @simple_layout('layouts/basic-github.yaml', driver='github') def test_git_https_url(self): """Test that git_ssh option gives git url with ssh""" - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') _, project = tenant.getProject('org/project') url = self.fake_github.real_getGitUrl(project) @@ -406,7 +406,7 @@ class TestGithubDriver(ZuulTestCase): @simple_layout('layouts/basic-github.yaml', driver='github') def test_git_ssh_url(self): """Test that git_ssh option gives git url with ssh""" - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') _, project = tenant.getProject('org/project') url = self.fake_github_ssh.real_getGitUrl(project) @@ -415,7 +415,7 @@ class TestGithubDriver(ZuulTestCase): @simple_layout('layouts/basic-github.yaml', driver='github') def test_git_enterprise_url(self): """Test that git_url option gives git url with proper host""" - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') _, project = tenant.getProject('org/project') url = self.fake_github_ent.real_getGitUrl(project) @@ -898,7 +898,8 @@ class TestGithubDriver(ZuulTestCase): modified_files=modified_files) # record previous tenant reconfiguration time, which may not be set - old = self.sched.tenant_last_reconfigured.get('tenant-one', 0) + old = self.scheds.first.sched.tenant_last_reconfigured\ + .get('tenant-one', 0) self.waitUntilSettled() if expected_cat_jobs is not None: @@ -908,7 +909,8 @@ class TestGithubDriver(ZuulTestCase): self.fake_github.emitEvent(pevent) self.waitUntilSettled() - new = self.sched.tenant_last_reconfigured.get('tenant-one', 0) + new = self.scheds.first.sched.tenant_last_reconfigured\ + .get('tenant-one', 0) if expect_reconfigure: # New timestamp should be greater than the old timestamp @@ -1086,7 +1088,7 @@ class TestGithubDriver(ZuulTestCase): self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] self.assertEqual(check_pipeline.getAllItems(), []) self.assertEqual(self.countJobResults(self.history, 'ABORTED'), 2) @@ -1222,7 +1224,8 @@ class TestGithubUnprotectedBranches(ZuulTestCase): tenant_config_file = 'config/unprotected-branches/main.yaml' def test_unprotected_branches(self): - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants\ + .get('tenant-one') project1 = tenant.untrusted_projects[0] project2 = tenant.untrusted_projects[1] @@ -1243,7 +1246,7 @@ class TestGithubUnprotectedBranches(ZuulTestCase): self.scheds.execute(lambda app: app.sched.reconfigure(app.config)) self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') tpc1 = tenant.project_configs[project1.canonical_name] tpc2 = tenant.project_configs[project2.canonical_name] @@ -1338,12 +1341,14 @@ class TestGithubUnprotectedBranches(ZuulTestCase): modified_files=['zuul.yaml']) # record previous tenant reconfiguration time, which may not be set - old = self.sched.tenant_last_reconfigured.get('tenant-one', 0) + old = self.scheds.first.sched.tenant_last_reconfigured\ + .get('tenant-one', 0) self.waitUntilSettled() self.fake_github.emitEvent(pevent) self.waitUntilSettled() - new = self.sched.tenant_last_reconfigured.get('tenant-one', 0) + new = self.scheds.first.sched.tenant_last_reconfigured\ + .get('tenant-one', 0) # We don't expect a reconfiguration because the push was to an # unprotected branch @@ -1356,7 +1361,8 @@ class TestGithubUnprotectedBranches(ZuulTestCase): self.fake_github.emitEvent(pevent) self.waitUntilSettled() - new = self.sched.tenant_last_reconfigured.get('tenant-one', 0) + new = self.scheds.first.sched.tenant_last_reconfigured\ + .get('tenant-one', 0) # We now expect that zuul reconfigured itself self.assertLess(old, new) @@ -1380,7 +1386,8 @@ class TestGithubUnprotectedBranches(ZuulTestCase): self.waitUntilSettled() # record previous tenant reconfiguration time, which may not be set - old = self.sched.tenant_last_reconfigured.get('tenant-one', 0) + old = self.scheds.first.sched.tenant_last_reconfigured\ + .get('tenant-one', 0) self.waitUntilSettled() # Delete the branch @@ -1393,7 +1400,8 @@ class TestGithubUnprotectedBranches(ZuulTestCase): self.fake_github.emitEvent(pevent) self.waitUntilSettled() - new = self.sched.tenant_last_reconfigured.get('tenant-one', 0) + new = self.scheds.first.sched.tenant_last_reconfigured\ + .get('tenant-one', 0) # We now expect that zuul reconfigured itself as we deleted a protected # branch diff --git a/tests/unit/test_pagure_driver.py b/tests/unit/test_pagure_driver.py index b0ac9ed30f..04daee45a4 100644 --- a/tests/unit/test_pagure_driver.py +++ b/tests/unit/test_pagure_driver.py @@ -214,10 +214,12 @@ class TestPagureDriver(ZuulTestCase): newrev = repo.commit('refs/heads/stable-1.0').hexsha event = self.fake_pagure.getGitBranchEvent( 'org/project', 'stable-1.0', 'creation', newrev) - old = self.sched.tenant_last_reconfigured.get('tenant-one', 0) + old = self.scheds.first.sched.tenant_last_reconfigured\ + .get('tenant-one', 0) self.fake_pagure.emitEvent(event) self.waitUntilSettled() - new = self.sched.tenant_last_reconfigured.get('tenant-one', 0) + new = self.scheds.first.sched.tenant_last_reconfigured\ + .get('tenant-one', 0) # New timestamp should be greater than the old timestamp self.assertLess(old, new) self.assertEqual(1, len(self.history)) @@ -245,7 +247,8 @@ class TestPagureDriver(ZuulTestCase): def test_ref_updated_and_tenant_reconfigure(self): self.waitUntilSettled() - old = self.sched.tenant_last_reconfigured.get('tenant-one', 0) + old = self.scheds.first.sched.tenant_last_reconfigured\ + .get('tenant-one', 0) zuul_yaml = [ {'job': { @@ -271,7 +274,8 @@ class TestPagureDriver(ZuulTestCase): self.fake_pagure.emitEvent(event) self.waitUntilSettled() - new = self.sched.tenant_last_reconfigured.get('tenant-one', 0) + new = self.scheds.first.sched.tenant_last_reconfigured\ + .get('tenant-one', 0) # New timestamp should be greater than the old timestamp self.assertLess(old, new) @@ -325,7 +329,7 @@ class TestPagureDriver(ZuulTestCase): self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] self.assertEqual(check_pipeline.getAllItems(), []) self.assertEqual(self.countJobResults(self.history, 'ABORTED'), 2) @@ -587,7 +591,7 @@ class TestPagureDriver(ZuulTestCase): B.commit_stop)) # There should be no more changes in the queue - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0) @simple_layout('layouts/crd-pagure.yaml', driver='pagure') diff --git a/tests/unit/test_scheduler.py b/tests/unit/test_scheduler.py index b5091f5ab8..b9fa476163 100644 --- a/tests/unit/test_scheduler.py +++ b/tests/unit/test_scheduler.py @@ -26,6 +26,7 @@ from kazoo.exceptions import NoNodeError import git import testtools +from zuul.scheduler import Scheduler import zuul.change_matcher from zuul.driver.gerrit import gerritreporter @@ -797,7 +798,7 @@ class TestScheduler(ZuulTestCase): # project-test1 and project-test2 for C self.assertEqual(len(self.builds), 5) - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') items = tenant.layout.pipelines['gate'].getAllItems() builds = items[0].current_build_set.getBuilds() self.assertEqual(self.countJobResults(builds, 'SUCCESS'), 1) @@ -908,7 +909,8 @@ class TestScheduler(ZuulTestCase): self.waitUntilSettled() time.sleep(2) - data = json.loads(self.sched.formatStatusJSON('tenant-one')) + data = json.loads(self.scheds.first.sched + .formatStatusJSON('tenant-one')) found_job = None for pipeline in data['pipelines']: if pipeline['name'] != 'gate': @@ -1224,7 +1226,7 @@ class TestScheduler(ZuulTestCase): "Test whether a change is ready to merge" # TODO: move to test_gerrit (this is a unit test!) A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A') - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') (trusted, project) = tenant.getProject('org/project') source = project.source @@ -2137,10 +2139,10 @@ class TestScheduler(ZuulTestCase): @simple_layout('layouts/autohold.yaml') def test_autohold_request_expiration(self): - orig_exp = self.sched.EXPIRED_HOLD_REQUEST_TTL + orig_exp = Scheduler.EXPIRED_HOLD_REQUEST_TTL def reset_exp(): - self.sched.EXPIRED_HOLD_REQUEST_TTL = orig_exp + self.scheds.first.sched.EXPIRED_HOLD_REQUEST_TTL = orig_exp self.addCleanup(reset_exp) @@ -2171,7 +2173,7 @@ class TestScheduler(ZuulTestCase): # Temporarily shorten hold time so that the hold request can be # auto-deleted (which is done on another test failure). And wait # long enough for nodes to expire and request to delete. - self.sched.EXPIRED_HOLD_REQUEST_TTL = 1 + self.scheds.first.sched.EXPIRED_HOLD_REQUEST_TTL = 1 time.sleep(3) B = self.fake_gerrit.addFakeChange('org/project', 'master', 'B') @@ -2317,7 +2319,7 @@ class TestScheduler(ZuulTestCase): "Test that the merger works with large changes after a repack" # https://bugs.executepad.net/zuul/+bug/1078946 # This test assumes the repo is already cloned; make sure it is - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') trusted, project = tenant.getProject('org/project') url = self.fake_gerrit.getGitUrl(project) self.executor_server.merger._addProject('review.example.com', @@ -2399,7 +2401,7 @@ class TestScheduler(ZuulTestCase): A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A') B = self.fake_gerrit.addFakeChange('org/project', 'master', 'B') - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] # Add two git-dependent changes @@ -2520,7 +2522,7 @@ class TestScheduler(ZuulTestCase): A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A') B = self.fake_gerrit.addFakeChange('org/project', 'master', 'B') - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] # Add two git-dependent changes @@ -2746,7 +2748,7 @@ class TestScheduler(ZuulTestCase): self.waitUntilSettled() self.assertEqual(len(self.gearman_server.getQueue()), 0) - self.assertTrue(self.sched._areAllBuildsComplete()) + self.assertTrue(self.scheds.first.sched._areAllBuildsComplete()) self.assertEqual(len(self.history), 0) self.assertEqual(A.data['status'], 'MERGED') self.assertEqual(A.reported, 2) @@ -2763,7 +2765,7 @@ class TestScheduler(ZuulTestCase): self.assertEqual(A.reported, False) # Check queue is empty afterwards - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] items = check_pipeline.getAllItems() self.assertEqual(len(items), 0) @@ -2859,7 +2861,7 @@ class TestScheduler(ZuulTestCase): def test_statsd(self): "Test each of the statsd methods used in the scheduler" - statsd = self.sched.statsd + statsd = self.scheds.first.sched.statsd statsd.incr('test-incr') statsd.timing('test-timing', 3) statsd.gauge('test-gauge', 12) @@ -2878,7 +2880,7 @@ class TestScheduler(ZuulTestCase): self.assertReportedStat('hostname-gauge.1_2_3_4.1_2', '12', 'g') def test_statsd_conflict(self): - statsd = self.sched.statsd + statsd = self.scheds.first.sched.statsd statsd.gauge('test-gauge', 12) # since test-gauge is already a value, we can't make # subvalues. Test the assert works. @@ -2907,7 +2909,7 @@ class TestScheduler(ZuulTestCase): self.waitUntilSettled() # asserting that project-merge is removed from queue self.assertEqual(len(self.gearman_server.getQueue()), 0) - self.assertTrue(self.sched._areAllBuildsComplete()) + self.assertTrue(self.scheds.first.sched._areAllBuildsComplete()) self.assertEqual(len(self.history), 1) self.assertEqual(self.history[0].name, 'gate-noop') @@ -3149,7 +3151,7 @@ class TestScheduler(ZuulTestCase): def test_queue_names(self): "Test shared change queue names" - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') (trusted, project1) = tenant.getProject('org/project1') (trusted, project2) = tenant.getProject('org/project2') q1 = tenant.layout.pipelines['gate'].getQueue(project1) @@ -3160,7 +3162,7 @@ class TestScheduler(ZuulTestCase): @simple_layout("layouts/template-queue.yaml") def test_template_queue(self): "Test a shared queue can be constructed from a project-template" - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') (trusted, project1) = tenant.getProject('org/project1') (trusted, project2) = tenant.getProject('org/project2') q1 = tenant.layout.pipelines['gate'].getQueue(project1) @@ -3171,7 +3173,7 @@ class TestScheduler(ZuulTestCase): @simple_layout("layouts/regex-template-queue.yaml") def test_regex_template_queue(self): "Test a shared queue can be constructed from a regex project-template" - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') (trusted, project1) = tenant.getProject('org/project1') (trusted, project2) = tenant.getProject('org/project2') q1 = tenant.layout.pipelines['gate'].getQueue(project1) @@ -3182,7 +3184,7 @@ class TestScheduler(ZuulTestCase): @simple_layout("layouts/regex-queue.yaml") def test_regex_queue(self): "Test a shared queue can be constructed from a regex project" - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') (trusted, project1) = tenant.getProject('org/project1') (trusted, project2) = tenant.getProject('org/project2') q1 = tenant.layout.pipelines['gate'].getQueue(project1) @@ -3221,24 +3223,28 @@ class TestScheduler(ZuulTestCase): def test_reconfigure_merge(self): """Test that two reconfigure events are merged""" - tenant = self.sched.abide.tenants['tenant-one'] + tenant = self.scheds.first.sched.abide.tenants['tenant-one'] (trusted, project) = tenant.getProject('org/project') - self.sched.run_handler_lock.acquire() - self.assertEqual(self.sched.management_event_queue.qsize(), 0) + self.scheds.first.sched.run_handler_lock.acquire() + self.assertEqual( + self.scheds.first.sched.management_event_queue.qsize(), 0) - self.sched.reconfigureTenant(tenant, project, None) - self.assertEqual(self.sched.management_event_queue.qsize(), 1) + self.scheds.first.sched.reconfigureTenant(tenant, project, None) + self.assertEqual( + self.scheds.first.sched.management_event_queue.qsize(), 1) - self.sched.reconfigureTenant(tenant, project, None) + self.scheds.first.sched.reconfigureTenant(tenant, project, None) # The second event should have been combined with the first # so we should still only have one entry. - self.assertEqual(self.sched.management_event_queue.qsize(), 1) + self.assertEqual( + self.scheds.first.sched.management_event_queue.qsize(), 1) - self.sched.run_handler_lock.release() + self.scheds.first.sched.run_handler_lock.release() self.waitUntilSettled() - self.assertEqual(self.sched.management_event_queue.qsize(), 0) + self.assertEqual( + self.scheds.first.sched.management_event_queue.qsize(), 0) def test_live_reconfiguration(self): "Test that live reconfiguration works" @@ -3267,7 +3273,8 @@ class TestScheduler(ZuulTestCase): "Test that live reconfiguration via command socket works" # record previous tenant reconfiguration time, which may not be set - old = self.sched.tenant_last_reconfigured.get('tenant-one', 0) + old = self.scheds.first.sched.tenant_last_reconfigured\ + .get('tenant-one', 0) self.waitUntilSettled() command_socket = self.config.get('scheduler', 'command_socket') @@ -3282,7 +3289,8 @@ class TestScheduler(ZuulTestCase): while True: if time.time() - start > 15: raise Exception("Timeout waiting for full reconfiguration") - new = self.sched.tenant_last_reconfigured.get('tenant-one', 0) + new = self.scheds.first.sched.tenant_last_reconfigured\ + .get('tenant-one', 0) if old < new: break else: @@ -3297,7 +3305,7 @@ class TestScheduler(ZuulTestCase): self.fake_gerrit.addEvent(A.addApproval('Approved', 1)) self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') pipeline = tenant.layout.pipelines['gate'] change = pipeline.getAllItems()[0].change # Set this to an invalid value to cause an exception during @@ -3665,7 +3673,7 @@ class TestScheduler(ZuulTestCase): self.assertEqual(B.reported, 0) self.assertEqual(C.reported, 0) - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0) self.assertIn('Build succeeded', A.messages[0]) @@ -3769,7 +3777,8 @@ class TestScheduler(ZuulTestCase): self.waitUntilSettled() def get_job(): - data = json.loads(self.sched.formatStatusJSON('tenant-one')) + data = json.loads(self.scheds.first.sched + .formatStatusJSON('tenant-one')) for pipeline in data['pipelines']: for queue in pipeline['change_queues']: for head in queue['heads']: @@ -3781,7 +3790,7 @@ class TestScheduler(ZuulTestCase): job = get_job() self.assertTrue(job['queued']) - self.sched.reconfigure(self.config) + self.scheds.execute(lambda app: app.sched.reconfigure(self.config)) self.waitUntilSettled() job = get_job() @@ -3944,7 +3953,8 @@ class TestScheduler(ZuulTestCase): # Ensure that the status json has the ref so we can render it in the # web ui. - data = json.loads(self.sched.formatStatusJSON('tenant-one')) + data = json.loads(self.scheds.first.sched + .formatStatusJSON('tenant-one')) pipeline = [x for x in data['pipelines'] if x['name'] == 'periodic'][0] first = pipeline['change_queues'][0]['heads'][0][0] second = pipeline['change_queues'][1]['heads'][0][0] @@ -4058,7 +4068,7 @@ class TestScheduler(ZuulTestCase): # should succeed. report_mock.side_effect = Exception('Gerrit failed to report') - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check = tenant.layout.pipelines['check'] check.success_actions = sorted(check.success_actions, @@ -4388,7 +4398,7 @@ class TestScheduler(ZuulTestCase): self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') gate_pipeline = tenant.layout.pipelines['gate'] self.assertEqual(gate_pipeline.getAllItems(), []) self.assertEqual(self.countJobResults(self.history, 'ABORTED'), 1) @@ -4426,7 +4436,7 @@ class TestScheduler(ZuulTestCase): ref=None) self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] self.assertEqual(len(check_pipeline.getAllItems()), 2) self.assertEqual(self.countJobResults(self.history, 'ABORTED'), 1) @@ -4627,7 +4637,7 @@ class TestScheduler(ZuulTestCase): self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') items = tenant.layout.pipelines['gate'].getAllItems() enqueue_times = {} for item in items: @@ -4825,7 +4835,7 @@ class TestScheduler(ZuulTestCase): self.executor_server.release('project-.*') self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') queue = tenant.layout.pipelines['gate'].queues[0] # A failed so window is reduced by 1 to 1. self.assertEqual(queue.window, 1) @@ -4913,7 +4923,7 @@ class TestScheduler(ZuulTestCase): self.executor_server.release('project-.*') self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') queue = tenant.layout.pipelines['gate'].queues[0] # A failed so window is reduced by 1 to 1. self.assertEqual(queue.window, 1) @@ -5035,7 +5045,7 @@ class TestScheduler(ZuulTestCase): # D's remaining job self.assertEqual(self.builds[2].name, 'project-test2') - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') queue = tenant.layout.pipelines['gate'].queues[0] self.assertEqual(queue.window, 1) @@ -5066,7 +5076,7 @@ class TestScheduler(ZuulTestCase): self.fake_gerrit.addEvent(B.addApproval('Approved', 1)) self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') queue = tenant.layout.pipelines['gate'].queues[0] self.assertEqual(queue.window, 20) self.assertTrue(len(self.builds), 4) @@ -5076,7 +5086,7 @@ class TestScheduler(ZuulTestCase): self.commitConfigUpdate('org/common-config', 'layouts/reconfigure-window2.yaml') self.scheds.execute(lambda app: app.sched.reconfigure(app.config)) - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') queue = tenant.layout.pipelines['gate'].queues[0] # Even though we have configured a smaller window, the value # on the existing shared queue should be used. @@ -5084,7 +5094,7 @@ class TestScheduler(ZuulTestCase): self.assertTrue(len(self.builds), 4) self.scheds.execute(lambda app: app.sched.reconfigure(app.config)) - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') queue = tenant.layout.pipelines['gate'].queues[0] self.assertEqual(queue.window, 20) self.assertTrue(len(self.builds), 4) @@ -5114,7 +5124,7 @@ class TestScheduler(ZuulTestCase): self.fake_gerrit.addEvent(B.addApproval('Approved', 1)) self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') queue = tenant.layout.pipelines['gate'].queues[0] self.assertEqual(queue.window, 2) self.assertEqual(len(self.builds), 4) @@ -5124,7 +5134,7 @@ class TestScheduler(ZuulTestCase): 'layouts/reconfigure-window-fixed2.yaml') self.scheds.execute(lambda app: app.sched.reconfigure(app.config)) self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') queue = tenant.layout.pipelines['gate'].queues[0] # Because we have configured a static window, it should # be allowed to shrink on reconfiguration. @@ -5134,7 +5144,7 @@ class TestScheduler(ZuulTestCase): self.assertEqual(len(self.builds), 4) self.scheds.execute(lambda app: app.sched.reconfigure(app.config)) - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') queue = tenant.layout.pipelines['gate'].queues[0] self.assertEqual(queue.window, 1) self.waitUntilSettled() @@ -5173,7 +5183,7 @@ class TestScheduler(ZuulTestCase): self.waitUntilSettled() self.log.debug("B complete") - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') queue = tenant.layout.pipelines['gate'].queues[0] self.assertEqual(queue.window, 2) self.assertEqual(len(self.builds), 2) @@ -5185,7 +5195,7 @@ class TestScheduler(ZuulTestCase): self.waitUntilSettled() self.log.debug("Reconfiguration complete") - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') queue = tenant.layout.pipelines['gate'].queues[0] # Because we have configured a static window, it should # be allowed to shrink on reconfiguration. @@ -5209,7 +5219,7 @@ class TestScheduler(ZuulTestCase): self.waitUntilSettled() self.log.debug("Executor unpause complete") - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') queue = tenant.layout.pipelines['gate'].queues[0] self.assertEqual(queue.window, 1) @@ -5342,7 +5352,7 @@ For CI problems and help debugging, contact ci@example.org""" def test_merge_failure_reporters(self): """Check that the config is set up correctly""" - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual( "Merge Failed.\n\nThis change or one of its cross-repo " "dependencies was unable to be automatically merged with the " @@ -5527,7 +5537,7 @@ For CI problems and help debugging, contact ci@example.org""" def test_disable_at(self): "Test a pipeline will only report to the disabled trigger when failing" - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(3, tenant.layout.pipelines['check'].disable_at) self.assertEqual( 0, tenant.layout.pipelines['check']._consecutive_failures) @@ -5625,7 +5635,7 @@ For CI problems and help debugging, contact ci@example.org""" # comes out of disabled self.scheds.execute(lambda app: app.sched.reconfigure(app.config)) - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(3, tenant.layout.pipelines['check'].disable_at) self.assertEqual( @@ -5772,11 +5782,11 @@ For CI problems and help debugging, contact ci@example.org""" # We're waiting on the nodepool request to complete. Stop the # scheduler from processing further events, then fulfill the # nodepool request. - self.sched.run_handler_lock.acquire() + self.scheds.first.sched.run_handler_lock.acquire() # Fulfill the nodepool request. self.fake_nodepool.unpause() - requests = list(self.sched.nodepool.requests.values()) + requests = list(self.scheds.first.sched.nodepool.requests.values()) self.assertEqual(1, len(requests)) request = requests[0] for x in iterate_timeout(30, 'fulfill request'): @@ -5791,7 +5801,7 @@ For CI problems and help debugging, contact ci@example.org""" # Allow the scheduler to continue and process the (now # out-of-date) notification that nodes are ready. - self.sched.run_handler_lock.release() + self.scheds.first.sched.run_handler_lock.release() # It should resubmit the request, once it's fulfilled, we can # wait for it to run jobs and settle. @@ -5980,7 +5990,7 @@ For CI problems and help debugging, contact ci@example.org""" # Fulfill only the first request self.fake_nodepool.fulfillRequest(reqs[0]) for x in iterate_timeout(30, 'fulfill request'): - if len(self.sched.nodepool.requests) < 4: + if len(self.scheds.first.sched.nodepool.requests) < 4: break self.waitUntilSettled() @@ -6091,13 +6101,13 @@ For CI problems and help debugging, contact ci@example.org""" self.fake_gerrit.addEvent(A.getRefUpdatedEvent()) self.waitUntilSettled() # Reconfigure while we still have an outstanding merge job - self.sched.reconfigureTenant(self.sched.abide.tenants['tenant-one'], - None, None) + self.scheds.first.sched.reconfigureTenant( + self.scheds.first.sched.abide.tenants['tenant-one'], None, None) self.waitUntilSettled() # Verify the merge job is still running and that the item is # in the pipeline - self.assertEqual(len(self.sched.merger.jobs), 1) - tenant = self.sched.abide.tenants.get('tenant-one') + self.assertEqual(len(self.scheds.first.sched.merger.jobs), 1) + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') pipeline = tenant.layout.pipelines['post'] self.assertEqual(len(pipeline.getAllItems()), 1) self.gearman_server.hold_merge_jobs_in_queue = False @@ -7052,7 +7062,7 @@ class TestSemaphore(ZuulTestCase): def test_semaphore_one(self): "Test semaphores with max=1 (mutex)" - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.executor_server.hold_jobs_in_build = True @@ -7133,7 +7143,7 @@ class TestSemaphore(ZuulTestCase): def test_semaphore_two(self): "Test semaphores with max>1" - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.executor_server.hold_jobs_in_build = True A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A') @@ -7213,7 +7223,7 @@ class TestSemaphore(ZuulTestCase): def test_semaphore_node_failure(self): "Test semaphore and node failure" - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') # Pause nodepool so we can fail the node request later self.fake_nodepool.pause() @@ -7245,7 +7255,7 @@ class TestSemaphore(ZuulTestCase): def test_semaphore_resources_first(self): "Test semaphores with max=1 (mutex) and get resources first" - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.executor_server.hold_jobs_in_build = True @@ -7292,7 +7302,7 @@ class TestSemaphore(ZuulTestCase): def test_semaphore_resources_first_node_failure(self): "Test semaphore and node failure" - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') # Pause nodepool so we can fail the node request later self.fake_nodepool.pause() @@ -7324,7 +7334,7 @@ class TestSemaphore(ZuulTestCase): def test_semaphore_zk_error(self): "Test semaphore release with zk error" - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') A = self.fake_gerrit.addFakeChange('org/project2', 'master', 'A') self.assertFalse('test-semaphore' in @@ -7354,7 +7364,7 @@ class TestSemaphore(ZuulTestCase): def test_semaphore_abandon(self): "Test abandon with job semaphores" self.executor_server.hold_jobs_in_build = True - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A') @@ -7390,7 +7400,7 @@ class TestSemaphore(ZuulTestCase): # and aquiring the semaphore. self.fake_nodepool.paused = True - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A') @@ -7432,7 +7442,7 @@ class TestSemaphore(ZuulTestCase): # in a controlled manner. self.fake_nodepool.paused = True - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A') @@ -7470,7 +7480,7 @@ class TestSemaphore(ZuulTestCase): def test_semaphore_new_patchset(self): "Test new patchset with job semaphores" self.executor_server.hold_jobs_in_build = True - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A') @@ -7510,7 +7520,7 @@ class TestSemaphore(ZuulTestCase): def test_semaphore_reconfigure(self): "Test reconfigure with job semaphores" self.executor_server.hold_jobs_in_build = True - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A') self.assertFalse('test-semaphore' in tenant.semaphore_handler.semaphores) @@ -7524,7 +7534,7 @@ class TestSemaphore(ZuulTestCase): # reconfigure without layout change self.scheds.execute(lambda app: app.sched.reconfigure(app.config)) self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') # semaphore still must be held self.assertTrue('test-semaphore' in @@ -7535,7 +7545,7 @@ class TestSemaphore(ZuulTestCase): 'config/semaphore/zuul-reconfiguration.yaml') self.scheds.execute(lambda app: app.sched.reconfigure(app.config)) self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.executor_server.release('project-test1') self.waitUntilSettled() @@ -7550,7 +7560,7 @@ class TestSemaphore(ZuulTestCase): def test_semaphore_reconfigure_job_removal(self): "Test job removal during reconfiguration with semaphores" self.executor_server.hold_jobs_in_build = True - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A') self.assertFalse('test-semaphore' in @@ -7573,7 +7583,7 @@ class TestSemaphore(ZuulTestCase): self.waitUntilSettled() # The check pipeline should be empty - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] items = check_pipeline.getAllItems() self.assertEqual(len(items), 0) @@ -7597,7 +7607,7 @@ class TestSemaphore(ZuulTestCase): # reconfiguration. self.fake_nodepool.pause() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A') self.assertFalse('test-semaphore' in @@ -7624,7 +7634,7 @@ class TestSemaphore(ZuulTestCase): self.waitUntilSettled() # The check pipeline should be empty - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] items = check_pipeline.getAllItems() self.assertEqual(len(items), 0) @@ -7645,8 +7655,8 @@ class TestSemaphoreMultiTenant(ZuulTestCase): "Test semaphores in multiple tenants" self.waitUntilSettled() - tenant_one = self.sched.abide.tenants.get('tenant-one') - tenant_two = self.sched.abide.tenants.get('tenant-two') + tenant_one = self.scheds.first.sched.abide.tenants.get('tenant-one') + tenant_two = self.scheds.first.sched.abide.tenants.get('tenant-two') self.executor_server.hold_jobs_in_build = True A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A') @@ -7837,7 +7847,7 @@ class TestSemaphoreInRepo(ZuulTestCase): # after the change lands. self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') in_repo_conf = textwrap.dedent( """ @@ -7920,7 +7930,7 @@ class TestSemaphoreInRepo(ZuulTestCase): self.waitUntilSettled() # now that change A was merged, the new semaphore max must be effective - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEqual(tenant.layout.semaphores.get('test-semaphore').max, 2) # two builds must be in queue, two semaphores acquired @@ -8259,8 +8269,10 @@ class TestSchedulerSmartReconfiguration(ZuulTestCase): self.fake_gerrit.addEvent(C.getPatchsetCreatedEvent(1)) # record previous tenant reconfiguration time, which may not be set - old_one = self.sched.tenant_last_reconfigured.get('tenant-one', 0) - old_two = self.sched.tenant_last_reconfigured.get('tenant-two', 0) + old_one = self.scheds.first.sched.tenant_last_reconfigured\ + .get('tenant-one', 0) + old_two = self.scheds.first.sched.tenant_last_reconfigured\ + .get('tenant-two', 0) self.waitUntilSettled() self.newTenantConfig('config/multi-tenant/main-reconfig.yaml') @@ -8276,7 +8288,8 @@ class TestSchedulerSmartReconfiguration(ZuulTestCase): while True: if time.time() - start > 15: raise Exception("Timeout waiting for smart reconfiguration") - new_two = self.sched.tenant_last_reconfigured.get('tenant-two', 0) + new_two = self.scheds.first.sched.tenant_last_reconfigured\ + .get('tenant-two', 0) if old_two < new_two: break else: @@ -8284,7 +8297,8 @@ class TestSchedulerSmartReconfiguration(ZuulTestCase): # Ensure that tenant-one has not been reconfigured self.waitUntilSettled() - new_one = self.sched.tenant_last_reconfigured.get('tenant-one', 0) + new_one = self.scheds.first.sched.tenant_last_reconfigured\ + .get('tenant-one', 0) self.assertEqual(old_one, new_one) self.executor_server.hold_jobs_in_build = False @@ -8300,11 +8314,12 @@ class TestSchedulerSmartReconfiguration(ZuulTestCase): # Verify known tenants expected_tenants = {'tenant-one', 'tenant-two', 'tenant-four'} - self.assertEqual(expected_tenants, self.sched.abide.tenants.keys()) + self.assertEqual(expected_tenants, + self.scheds.first.sched.abide.tenants.keys()) - self.assertIsNotNone( - self.sched.tenant_last_reconfigured.get('tenant-four'), - 'Tenant tenant-four should exist now.') + self.assertIsNotNone(self.scheds.first.sched.tenant_last_reconfigured + .get('tenant-four'), + 'Tenant tenant-four should exist now.') # Test that the new tenant-four actually works D = self.fake_gerrit.addFakeChange('org/project4', 'master', 'D') diff --git a/tests/unit/test_v3.py b/tests/unit/test_v3.py index 7ceb2ffcc1..0088788d20 100644 --- a/tests/unit/test_v3.py +++ b/tests/unit/test_v3.py @@ -1139,7 +1139,7 @@ class TestInRepoConfig(ZuulTestCase): files=file_dict) self.fake_gerrit.addEvent(A.getPatchsetCreatedEvent(1)) self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEquals( len(tenant.layout.loading_errors), 0, "No error should have been accumulated") @@ -1233,7 +1233,7 @@ class TestInRepoConfig(ZuulTestCase): def test_dynamic_config_new_patchset(self): self.executor_server.hold_jobs_in_build = True - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') check_pipeline = tenant.layout.pipelines['check'] in_repo_conf = textwrap.dedent( @@ -2186,7 +2186,7 @@ class TestInRepoConfig(ZuulTestCase): self.fake_gerrit.addEvent(B.getChangeMergedEvent()) self.waitUntilSettled() - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') # Ensure the latest change is reflected in the config; if it # isn't this will raise an exception. tenant.layout.getJob('project-test2') @@ -2536,7 +2536,7 @@ class TestInRepoJoin(ZuulTestCase): # dependent pipeline for the first time self.executor_server.hold_jobs_in_build = True - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') gate_pipeline = tenant.layout.pipelines['gate'] self.assertEqual(gate_pipeline.queues, []) @@ -3083,7 +3083,7 @@ class TestBrokenTrustedConfig(ZuulTestCase): def test_broken_config_on_startup(self): # verify get the errors at tenant level. - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') loading_errors = tenant.layout.loading_errors self.assertEquals( len(tenant.layout.loading_errors), 1, @@ -3140,7 +3140,7 @@ class TestBrokenConfig(ZuulTestCase): def test_broken_config_on_startup(self): # verify get the errors at tenant level. - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') loading_errors = tenant.layout.loading_errors self.assertEquals( len(tenant.layout.loading_errors), 2, @@ -3156,7 +3156,7 @@ class TestBrokenConfig(ZuulTestCase): def test_broken_config_on_startup_template(self): # Verify that a missing project-template doesn't break gate # pipeline construction. - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEquals( len(tenant.layout.loading_errors), 1, "An error should have been stored") @@ -3167,7 +3167,7 @@ class TestBrokenConfig(ZuulTestCase): @simple_layout('layouts/broken-double-gate.yaml') def test_broken_config_on_startup_double_gate(self): # Verify that duplicated pipeline definitions raise config errors - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') self.assertEquals( len(tenant.layout.loading_errors), 1, "An error should have been stored") @@ -3177,7 +3177,7 @@ class TestBrokenConfig(ZuulTestCase): def test_dynamic_ignore(self): # Verify dynamic config behaviors inside a tenant broken config - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') # There is a configuration error self.assertEquals( len(tenant.layout.loading_errors), 2, @@ -3209,7 +3209,7 @@ class TestBrokenConfig(ZuulTestCase): def test_dynamic_fail_unbroken(self): # Verify dynamic config behaviors inside a tenant broken config - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') # There is a configuration error self.assertEquals( len(tenant.layout.loading_errors), 2, @@ -3243,7 +3243,7 @@ class TestBrokenConfig(ZuulTestCase): def test_dynamic_fail_broken(self): # Verify dynamic config behaviors inside a tenant broken config - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') # There is a configuration error self.assertEquals( len(tenant.layout.loading_errors), 2, @@ -3277,7 +3277,7 @@ class TestBrokenConfig(ZuulTestCase): def test_dynamic_fix_broken(self): # Verify dynamic config behaviors inside a tenant broken config - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') # There is a configuration error self.assertEquals( len(tenant.layout.loading_errors), 2, @@ -3309,7 +3309,7 @@ class TestBrokenConfig(ZuulTestCase): def test_dynamic_fail_cross_repo(self): # Verify dynamic config behaviors inside a tenant broken config - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') # There is a configuration error self.assertEquals( len(tenant.layout.loading_errors), 2, @@ -3735,7 +3735,7 @@ class TestDataReturn(AnsibleZuulTestCase): self.waitUntilSettled() # Make sure skipped jobs are not reported as failing - tenant = self.sched.abide.tenants.get("tenant-one") + tenant = self.scheds.first.sched.abide.tenants.get("tenant-one") status = tenant.layout.pipelines["check"].formatStatusJSON() self.assertEqual( status["change_queues"][0]["heads"][0][0]["failing_reasons"], []) @@ -4042,7 +4042,7 @@ class TestPragma(ZuulTestCase): # This is an untrusted repo with 2 branches, so it should have # an implied branch matcher for the job. - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') jobs = tenant.layout.getJobs('test-job') self.assertEqual(len(jobs), 1) for job in tenant.layout.getJobs('test-job'): @@ -4070,7 +4070,7 @@ class TestPragma(ZuulTestCase): # This is an untrusted repo with 2 branches, so it would # normally have an implied branch matcher, but our pragma # overrides it. - tenant = self.sched.abide.tenants.get('tenant-one') + tenant = self.scheds.first.sched.abide.tenants.get('tenant-one') jobs = tenant.layout.getJobs('test-job') self.assertEqual(len(jobs), 1) for job in tenant.layout.getJobs('test-job'): diff --git a/tests/unit/test_zuultrigger.py b/tests/unit/test_zuultrigger.py index dd543efb98..80cb7387cc 100644 --- a/tests/unit/test_zuultrigger.py +++ b/tests/unit/test_zuultrigger.py @@ -69,11 +69,12 @@ class TestZuulTriggerParentChangeEnqueued(ZuulTestCase): nonlocal zuultrigger_event_count if isinstance(args[0], ZuulTriggerEvent): zuultrigger_event_count += 1 - self.sched.trigger_event_queue.put_orig(*args, **kwargs) + self.scheds.first.sched.trigger_event_queue\ + .put_orig(*args, **kwargs) - self.sched.trigger_event_queue.put_orig = \ - self.sched.trigger_event_queue.put - self.sched.trigger_event_queue.put = counting_put + self.scheds.first.sched.trigger_event_queue.put_orig = \ + self.scheds.first.sched.trigger_event_queue.put + self.scheds.first.sched.trigger_event_queue.put = counting_put C = self.fake_gerrit.addFakeChange('org/project', 'master', 'C') C.addApproval('Verified', -1) @@ -150,11 +151,12 @@ class TestZuulTriggerParentChangeEnqueuedGithub(ZuulGithubAppTestCase): nonlocal zuultrigger_event_count if isinstance(args[0], ZuulTriggerEvent): zuultrigger_event_count += 1 - self.sched.trigger_event_queue.put_orig(*args, **kwargs) + self.scheds.first.sched.trigger_event_queue\ + .put_orig(*args, **kwargs) - self.sched.trigger_event_queue.put_orig = \ - self.sched.trigger_event_queue.put - self.sched.trigger_event_queue.put = counting_put + self.scheds.first.sched.trigger_event_queue.put_orig = \ + self.scheds.first.sched.trigger_event_queue.put + self.scheds.first.sched.trigger_event_queue.put = counting_put C = self.fake_github.openFakePullRequest('org/project', 'master', 'C') C.addLabel('for-check') # should go to check