urllib compatibility
authorLars Hupfeldt <lhn@hupfeldtit.dk>
Thu, 13 Feb 2014 19:24:20 +0000 (20:24 +0100)
committerLars Hupfeldt <lhn@hupfeldtit.dk>
Thu, 13 Feb 2014 19:24:20 +0000 (20:24 +0100)
jenkinsapi/api.py
jenkinsapi/fingerprint.py
jenkinsapi/jenkins.py
jenkinsapi/job.py
jenkinsapi/node.py
jenkinsapi/utils/requester.py
jenkinsapi/view.py

index 948f4de822ec705b068d5397dfbcf71f086e43ff..156f3ac499fd2f849fe3cee9427cd1e721283608 100644 (file)
@@ -8,7 +8,12 @@ import os
 import time
 import logging
 
-from urllib2 import urlparse
+try:
+    from urllib import parse as urlparse
+except ImportError:
+    # Python3
+    from urllib2 import urlparse
+
 from jenkinsapi import constants
 from jenkinsapi.jenkins import Jenkins
 from jenkinsapi.artifact import Artifact
index 9a9891424336c46d2f7bb593d58080cec0bcebff..271415af9d87ad5ed7a93697568e1ee8871cc4c1 100644 (file)
@@ -5,7 +5,12 @@ Module for jenkinsapi Fingerprint
 from jenkinsapi.jenkinsbase import JenkinsBase
 from jenkinsapi.custom_exceptions import ArtifactBroken
 
-import urllib2
+try:
+    from urllib2 import HTTPError
+except ImportError:
+    # Python3
+    from urllib.error import HTTPError
+
 import re
 
 import logging
@@ -45,7 +50,7 @@ class Fingerprint(JenkinsBase):
         try:
             self.poll()
             self.unknown = False
-        except urllib2.HTTPError as err:
+        except HTTPError as err:
             # We can't really say anything about the validity of
             # fingerprints not found -- but the artifact can still
             # exist, so it is not possible to definitely say they are
@@ -86,7 +91,7 @@ class Fingerprint(JenkinsBase):
             assert self.valid()
         except AssertionError:
             raise ArtifactBroken("Artifact %s seems to be broken, check %s" % (self.id_, self.baseurl))
-        except urllib2.HTTPError:
+        except HTTPError:
             raise ArtifactBroken("Unable to validate artifact id %s using %s" % (self.id_, self.baseurl))
         return True
 
index 01fbf073b5341b2367e980692013f4af48790ba7..d9171110fdd63b9831dd8e5b0dc387b180abd36a 100644 (file)
@@ -4,9 +4,16 @@ Module for jenkinsapi Jenkins object
 
 
 import json
-import urllib
+
+try:
+    import urlparse
+    from urllib import quote as urlquote, urlencode
+except ImportError:
+    # Python3
+    import urllib.parse as urlparse
+    from urllib.parse import quote as urlquote, urlencode
+
 import logging
-import urlparse
 
 from jenkinsapi import config
 from jenkinsapi.executors import Executors
@@ -227,7 +234,7 @@ class Jenkins(JenkinsBase):
 
     def get_node_url(self, nodename=""):
         """Return the url for nodes"""
-        url = urlparse.urljoin(self.base_server_url(), 'computer/%s' % urllib.quote(nodename))
+        url = urlparse.urljoin(self.base_server_url(), 'computer/%s' % urlquote(nodename))
         return url
 
     def get_queue_url(self):
@@ -299,7 +306,7 @@ class Jenkins(JenkinsBase):
                 'launcher': {'stapler-class': 'hudson.slaves.JNLPLauncher'}
             })
         }
-        url = self.get_node_url() + "doCreateItem?%s" % urllib.urlencode(params)
+        url = self.get_node_url() + "doCreateItem?%s" % urlencode(params)
         self.requester.get_and_confirm_status(url)
 
         return Node(nodename=name, baseurl=self.get_node_url(nodename=name), jenkins_obj=self)
index b1668d000782396d16ee824bea9da8293ccf7337..ae3abc29e15ce234249f7817dc4ae424628e0860 100644 (file)
@@ -4,7 +4,13 @@ Module for jenkinsapi Job
 
 import json
 import logging
-import urlparse
+
+try:
+    import urlparse
+except ImportError:
+    # Python3
+    import urllib.parse as urlparse
+
 import xml.etree.ElementTree as ET
 from collections import defaultdict
 from time import sleep
index 8c5a6da1a425fe23ae23ed23ca46ab9c6271def1..02d0de6ea58bf92140419561d6c477870f8a8584 100644 (file)
@@ -4,7 +4,12 @@ Module for jenkinsapi Node class
 
 from jenkinsapi.jenkinsbase import JenkinsBase
 import logging
-import urllib
+
+try:
+    from urllib import quote as urlquote
+except ImportError:
+    # Python3
+    from urllib.parse import quote as urlquote
 
 log = logging.getLogger(__name__)
 
@@ -88,7 +93,7 @@ class Node(JenkinsBase):
         : param message: optional string can be used to explain why you are taking this node offline
         """
         initial_state = self.is_temporarily_offline()
-        url = self.baseurl + "/toggleOffline?offlineMessage=" + urllib.quote(message)
+        url = self.baseurl + "/toggleOffline?offlineMessage=" + urlquote(message)
         html_result = self.jenkins.requester.get_and_confirm_status(url)
         self.poll()
         log.debug(html_result)
index 0460b9947af0b989811aa6bdcd694f8d34d7fd20..2116c91cd7affe01fea2284e99e190e253cc71f4 100644 (file)
@@ -3,7 +3,13 @@ Module for jenkinsapi requester (which is a wrapper around python-requests)
 """
 
 import requests
-import urlparse
+
+try:
+    import urlparse
+except ImportError:
+    # Python3
+    import urllib.parse as urlparse
+
 from jenkinsapi.custom_exceptions import JenkinsAPIException
 # import logging
 
index 33718009dad6e1a1a4ba2127e171cf8a4c7fede3..9afd42f0fe7e1288babc91a0c21d26301d3ed9fc 100644 (file)
@@ -1,7 +1,12 @@
 """
 Module for jenkinsapi views
 """
-import urllib
+try:
+    from urllib import urlencode
+except ImportError:
+    # Python3
+    from urllib.parse import urlencode
+
 import logging
 
 from jenkinsapi.jenkinsbase import JenkinsBase
@@ -142,7 +147,7 @@ class View(JenkinsBase):
         data[job.name] = 'on'
 
         data['json'] = data.copy()
-        data = urllib.urlencode(data)
+        data = urlencode(data)
         self.get_jenkins_obj().requester.post_and_confirm_status(
             '%s/configSubmit' % self.baseurl, data=data)
         self.poll()