diff options
Diffstat (limited to 'tests/unit/test_executor.py')
-rw-r--r-- | tests/unit/test_executor.py | 47 |
1 files changed, 43 insertions, 4 deletions
diff --git a/tests/unit/test_executor.py b/tests/unit/test_executor.py index b85780f1c..c0fbc5546 100644 --- a/tests/unit/test_executor.py +++ b/tests/unit/test_executor.py @@ -281,7 +281,7 @@ class TestExecutorRepos(ZuulTestCase): # Start timer trigger - also org/project self.commitConfigUpdate('common-config', 'layouts/repo-checkout-timer-override.yaml') - self.sched.reconfigure(self.config) + self.scheds.execute(lambda app: app.sched.reconfigure(app.config)) # The pipeline triggers every second, so we should have seen # several by now. @@ -292,7 +292,7 @@ class TestExecutorRepos(ZuulTestCase): # below don't race against more jobs being queued. self.commitConfigUpdate('common-config', 'layouts/repo-checkout-no-timer-override.yaml') - self.sched.reconfigure(self.config) + self.scheds.execute(lambda app: app.sched.reconfigure(app.config)) self.waitUntilSettled() # If APScheduler is in mid-event when we remove the job, we # can end up with one more event firing, so give it an extra @@ -320,7 +320,7 @@ class TestExecutorRepos(ZuulTestCase): # Start timer trigger - also org/project self.commitConfigUpdate('common-config', 'layouts/repo-checkout-timer.yaml') - self.sched.reconfigure(self.config) + self.scheds.execute(lambda app: app.sched.reconfigure(app.config)) p1 = 'review.example.com/org/project1' projects = [p1] @@ -339,7 +339,7 @@ class TestExecutorRepos(ZuulTestCase): # below don't race against more jobs being queued. self.commitConfigUpdate('common-config', 'layouts/repo-checkout-no-timer.yaml') - self.sched.reconfigure(self.config) + self.scheds.execute(lambda app: app.sched.reconfigure(app.config)) self.waitUntilSettled() # If APScheduler is in mid-event when we remove the job, we # can end up with one more event firing, so give it an extra @@ -816,6 +816,21 @@ class TestExecutorFacts(AnsibleZuulTestCase): self.assertEqual(18, len(date_time)) +class TestExecutorEnvironment(AnsibleZuulTestCase): + tenant_config_file = 'config/zuul-environment-filter/main.yaml' + + @mock.patch.dict('os.environ', {'ZUUL_TEST_VAR': 'some-value', + 'TEST_VAR': 'not-empty'}) + def test_zuul_environment_filter(self): + A = self.fake_gerrit.addFakeChange('common-config', 'master', 'A') + self.fake_gerrit.addEvent(A.getChangeMergedEvent()) + self.waitUntilSettled() + + self.assertEqual( + self.getJobFromHistory('zuul-environment-filter').result, + 'SUCCESS') + + class TestExecutorStart(ZuulTestCase): tenant_config_file = 'config/single-tenant/main.yaml' @@ -827,3 +842,27 @@ class TestExecutorStart(ZuulTestCase): def test_executor_start(self): self.assertFalse(os.path.exists(self.junk_dir)) + + +class TestExecutorExtraPackages(AnsibleZuulTestCase): + tenant_config_file = 'config/single-tenant/main.yaml' + + test_package = 'pywinrm' + + def setUp(self): + super(TestExecutorExtraPackages, self).setUp() + import subprocess + ansible_manager = self.executor_server.ansible_manager + for version in ansible_manager._supported_versions: + command = [ansible_manager.getAnsibleCommand(version, 'pip'), + 'uninstall', '-y', self.test_package] + subprocess.run(command) + + @mock.patch('zuul.lib.ansible.ManagedAnsible.extra_packages', + new_callable=mock.PropertyMock) + def test_extra_packages(self, mock_extra_packages): + mock_extra_packages.return_value = [self.test_package] + ansible_manager = self.executor_server.ansible_manager + self.assertFalse(ansible_manager.validate()) + ansible_manager.install() + self.assertTrue(ansible_manager.validate()) |