summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--jenkins_jobs/builder.py2
-rw-r--r--tests/jenkins_manager/test_manager.py14
2 files changed, 15 insertions, 1 deletions
diff --git a/jenkins_jobs/builder.py b/jenkins_jobs/builder.py
index 10783fa8..1aea1e2f 100644
--- a/jenkins_jobs/builder.py
+++ b/jenkins_jobs/builder.py
@@ -112,7 +112,7 @@ class JenkinsManager(object):
plugins_list = self.jenkins.get_plugins().values()
except jenkins.JenkinsException as e:
- if re.search("Connection refused", str(e)):
+ if re.search("(Connection refused|Forbidden)", str(e)):
logger.warning(
"Unable to retrieve Jenkins Plugin Info from {0},"
" using default empty plugins info list.".format(
diff --git a/tests/jenkins_manager/test_manager.py b/tests/jenkins_manager/test_manager.py
index f3b32e7c..6a8edb25 100644
--- a/tests/jenkins_manager/test_manager.py
+++ b/tests/jenkins_manager/test_manager.py
@@ -68,3 +68,17 @@ class TestCaseTestJenkinsManager(base.BaseTestCase):
self.builder.delete_old_managed()
self.assertEquals(patches['delete_job'].call_count, 2)
+
+ def _get_plugins_info_error_test(self, error_string):
+ builder = jenkins_jobs.builder.JenkinsManager(self.jjb_config)
+ exception = jenkins_jobs.builder.jenkins.JenkinsException(error_string)
+ with mock.patch.object(builder.jenkins, 'get_plugins',
+ side_effect=exception):
+ plugins_info = builder.get_plugins_info()
+ self.assertEqual([_plugins_info['plugin1']], plugins_info)
+
+ def test_get_plugins_info_handles_connectionrefused_errors(self):
+ self._get_plugins_info_error_test('Connection refused')
+
+ def test_get_plugins_info_handles_forbidden_errors(self):
+ self._get_plugins_info_error_test('Forbidden')