summaryrefslogtreecommitdiff
path: root/tests/unit/test_executor.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/test_executor.py')
-rw-r--r--tests/unit/test_executor.py47
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())