diff options
-rw-r--r-- | jenkins_jobs/builder.py | 2 | ||||
-rw-r--r-- | tests/jenkins_manager/test_manager.py | 14 |
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') |