>>> import jenkinsapi
>>> from jenkinsapi.jenkins import Jenkins
>>> J = Jenkins('http://localhost:8080')
- >>> J.get_version()
+ >>> J.version
1.542
>>> J.keys() # Jenkins objects appear to be dict-like, mapping keys (job-names) to
['foo', 'test_jenkinsapi']
from jenkinsapi.fingerprint import Fingerprint
from jenkinsapi.jenkinsbase import JenkinsBase
from jenkinsapi.utils.requester import Requester
-from jenkinsapi.custom_exceptions import UnknownJob, BadURL
+from jenkinsapi.custom_exceptions import UnknownJob
log = logging.getLogger(__name__)
url = '%s/computer/%s' % (self.baseurl, nodename)
return Executors(url, nodename, self)
- def get_version(self):
+ @property
+ def version(self):
"""
Return version number of Jenkins
"""
response = self.requester.get_and_confirm_status(self.baseurl)
- try:
- return response.headers['X-jenkins']
- except KeyError:
- msg = '%s is not a valid Jenkins URL.' % (self.baseurl)
- raise BadURL(msg)
+ version_key = 'X-Jenkins'
+ return response.headers.get(version_key,'0.0')
class MockResponse(object):
def __init__(self):
self.headers = {}
- self.headers['X-jenkins'] = '1.542'
+ self.headers['X-Jenkins'] = '1.542'
mock_requester = Requester(username='foouser', password='foopassword')
mock_requester.get_and_confirm_status = mock.MagicMock(return_value=MockResponse())
J = Jenkins('http://localhost:8080/',
username='foouser', password='foopassword',
requester=mock_requester)
- self.assertEquals('1.542', J.get_version())
+ self.assertEquals('1.542', J.version)
@mock.patch.object(JenkinsBase, '_poll')
@mock.patch.object(Jenkins, '_poll')
- def test_get_version_exception(self, _base_poll, _poll):
+ def test_get_version_nonexistent(self, _base_poll, _poll):
class MockResponse(object):
def __init__(self):
self.headers = {}
J = Jenkins(base_url,
username='foouser', password='foopassword',
requester=mock_requester)
- with self.assertRaises(BadURL) as context:
- J.get_version()
- msg = '%s is not a valid Jenkins URL.' % (base_url)
- self.assertEqual(context.exception.message, msg)
+ self.assertEquals('0.0', J.version)
class TestJenkinsURLs(unittest.TestCase):