Convert config to str if it is unicode
authorAleksey Maksimov <ctpeko3a@gmail.com>
Fri, 28 Jun 2013 05:51:17 +0000 (13:51 +0800)
committerlechat <ctpeko3a-github@gmail.com>
Tue, 9 Jul 2013 15:03:33 +0000 (23:03 +0800)
jenkinsapi/jenkins.py
jenkinsapi/job.py
jenkinsapi/utils/requester.py

index 69996271185eb1b469a37385ba3690c1484b9413..66e658582b063ec71484e4df747db4f1f1653a48 100644 (file)
@@ -114,6 +114,8 @@ class Jenkins(JenkinsBase):
             return self[jobname]
 
         params = {'name': jobname}
+        if isinstance(config, unicode):
+            config = str(config)
         self.requester.post_xml_and_confirm_status(self.get_create_url(), data=config, params=params)
         self.poll()
         if not self.has_job(jobname):
index ab32a53110595447977387b133dc98d6232d8ae1..5ef35fe17dc058568b37b5b63167b607b601c02c 100644 (file)
@@ -401,6 +401,8 @@ class Job(JenkinsBase, MutableJenkinsThing):
         Also refresh the ElementTree object since the config has changed
         """
         url = self.get_config_xml_url()
+        if isinstance(config, unicode):
+            config = str(config)
         response = self.jenkins.requester.post_url(url, params={}, data=config)
         self._element_tree = ET.fromstring(config)
         return response.text
index cf62f61048a9f2c0a640a22efce9e12ac9178bec..f026bc16c9271ffbefc5648cb86b10911001748f 100644 (file)
@@ -57,7 +57,8 @@ class Requester(object):
     def post_and_confirm_status(self, url, params=None, data=None, headers=None, valid=None):
         valid = valid or self.VALID_STATUS_CODES
         assert isinstance(data, (
-            str, dict)), "Unexpected data type: %s" % repr(data)
+            str, dict)), \
+            "Unexpected type of parameter 'data': %s. Expected (str, dict)" % type(data)
 
         if not headers:
             headers = {'Content-Type': 'application/x-www-form-urlencoded'}