Don't return None on unhandled http errors
We handle 401, 403, 500 and 404 everything else currently returns None breaking parsing in the callers with hard to track down errors. Just raise the actual HTTP error in that case. Change-Id: I35e4f082069941cd5a8d97185693501ab2b0dc6f
This commit is contained in:
@@ -7,6 +7,7 @@ else:
|
||||
|
||||
from mock import patch, Mock
|
||||
import six
|
||||
from six.moves.urllib.error import HTTPError
|
||||
|
||||
from tests.helper import jenkins
|
||||
|
||||
@@ -222,6 +223,26 @@ class JenkinsTest(unittest.TestCase):
|
||||
jenkins_mock.call_args[0][0].get_full_url(),
|
||||
'http://example.com/job/TestJob')
|
||||
|
||||
@patch('jenkins.urlopen')
|
||||
def test_jenkins_open__501(self, jenkins_mock):
|
||||
jenkins_mock.side_effect = jenkins.HTTPError(
|
||||
'http://example.com/job/TestJob',
|
||||
code=501,
|
||||
msg="Not implemented",
|
||||
hdrs=[],
|
||||
fp=None)
|
||||
j = jenkins.Jenkins('http://example.com/', 'test', 'test')
|
||||
request = jenkins.Request('http://example.com/job/TestJob')
|
||||
|
||||
with self.assertRaises(HTTPError) as context_manager:
|
||||
j.jenkins_open(request, add_crumb=False)
|
||||
self.assertEqual(
|
||||
str(context_manager.exception),
|
||||
'HTTP Error 501: Not implemented')
|
||||
self.assertEqual(
|
||||
jenkins_mock.call_args[0][0].get_full_url(),
|
||||
'http://example.com/job/TestJob')
|
||||
|
||||
@patch('jenkins.urlopen')
|
||||
def test_jenkins_open__timeout(self, jenkins_mock):
|
||||
jenkins_mock.side_effect = jenkins.URLError(
|
||||
|
||||
Reference in New Issue
Block a user