Ensure keep is an iterable
If no value is provided for 'keep' when calling delete_old_managed, ensure a default empty iterable is used to prevent an exception. Change-Id: I3110f8e03e287a6ff067b992ed8631e34121a8d2
This commit is contained in:
parent
949a3a61e1
commit
bfb18520e6
|
@ -150,6 +150,8 @@ class JenkinsManager(object):
|
|||
def delete_old_managed(self, keep=None):
|
||||
jobs = self.get_jobs()
|
||||
deleted_jobs = 0
|
||||
if keep is None:
|
||||
keep = []
|
||||
for job in jobs:
|
||||
if job['name'] not in keep:
|
||||
if self.is_managed(job['name']):
|
||||
|
|
|
@ -39,3 +39,18 @@ class TestCaseTestJenkinsManager(base.BaseTestCase):
|
|||
self.jjb_config.builder['plugins_info'] = None
|
||||
self.builder = jenkins_jobs.builder.JenkinsManager(self.jjb_config)
|
||||
self.assertEqual(self.builder.plugins_list, ['p1', 'p2'])
|
||||
|
||||
def test_delete_managed(self):
|
||||
self.jjb_config.builder['plugins_info'] = []
|
||||
self.builder = jenkins_jobs.builder.JenkinsManager(self.jjb_config)
|
||||
|
||||
with mock.patch.multiple('jenkins_jobs.builder.JenkinsManager',
|
||||
get_jobs=mock.DEFAULT,
|
||||
is_managed=mock.DEFAULT,
|
||||
delete_job=mock.DEFAULT) as patches:
|
||||
patches['get_jobs'].return_value = [{'name': 'job1'},
|
||||
{'name': 'job2'}]
|
||||
patches['is_managed'].side_effect = [True, True]
|
||||
|
||||
self.builder.delete_old_managed()
|
||||
self.assertEquals(patches['delete_job'].call_count, 2)
|
||||
|
|
Loading…
Reference in New Issue