initial coverage + fixes for creating nodes
authorsalimfadhley <sal@stodge.org>
Sat, 15 Jun 2013 22:44:16 +0000 (23:44 +0100)
committersalimfadhley <sal@stodge.org>
Sat, 15 Jun 2013 22:44:16 +0000 (23:44 +0100)
jenkinsapi/jenkins.py
jenkinsapi/jenkinsbase.py
jenkinsapi_tests/systests/test_nodes.py [new file with mode: 0644]

index 02ec79d..b06d406 100644 (file)
@@ -164,7 +164,7 @@ class Jenkins(JenkinsBase):
             data='')
         self.poll()
         return self[jobname]
-    
+
     def build_job(self, jobname, params={}):
         """
         Invoke a build by job name
@@ -226,7 +226,7 @@ class Jenkins(JenkinsBase):
         return "Jenkins server at %s" % self.baseurl
 
     def _get_views(self):
-        log.debug('_get_views: self._data.has_key[views] %s' % 
+        log.debug('_get_views: self._data.has_key[views] %s' %
                 self._data.has_key('views'))
         if not self._data.has_key("views"):
             pass
@@ -440,12 +440,6 @@ class Jenkins(JenkinsBase):
             })
         }
         url = self.get_node_url() + "doCreateItem?%s" % urllib.urlencode(params)
+        self.requester.get_and_confirm_status(url)
 
-        fn_urlopen = self.get_jenkins_obj().get_opener()
-        try:
-            fn_urlopen(url).read()
-        except urllib2.HTTPError, e:
-            log.debug("Error reading %s" % url)
-            log.exception(e)
-            raise
         return Node(nodename=name, baseurl=self.get_node_url(nodename=name), jenkins_obj=self)
index de6cd81..96a2331 100644 (file)
@@ -57,7 +57,9 @@ class JenkinsBase(object):
 
     def _poll(self):
         url = self.python_api_url(self.baseurl)
+        return self.get_data(url)
 
+    def get_data(self, url):
         requester = self.get_jenkins_obj().requester
         response = requester.get_url(url)
         try:
diff --git a/jenkinsapi_tests/systests/test_nodes.py b/jenkinsapi_tests/systests/test_nodes.py
new file mode 100644 (file)
index 0000000..7605127
--- /dev/null
@@ -0,0 +1,21 @@
+'''
+System tests for `jenkinsapi.jenkins` module.
+'''
+import time
+import logging
+import unittest
+from jenkinsapi.jenkins import Jenkins
+from jenkinsapi_tests.systests.base import BaseSystemTest
+
+log = logging.getLogger(__name__)
+
+
+class TestNodes(BaseSystemTest):
+    def test_invoke_job_parameterized(self):
+
+        J = Jenkins('http://localhost:8080')
+        J.create_node('test')
+
+if __name__ == '__main__':
+    logging.basicConfig()
+    unittest.main()