From 6a580977ac13a987a7aa87ec9e2f8560a3f0d5ef Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Sat, 29 Aug 2009 21:03:17 -0400 Subject: Allow files=None for BugServer.send_post() We only want to pass in a non-None files in one place, so allow files=None to be the same as {}. --- git-bz | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/git-bz b/git-bz index 92bdd50..5dc9ba4 100755 --- a/git-bz +++ b/git-bz @@ -610,7 +610,7 @@ Possible browsers: %s""" % (str(e), browser, browser_list())) # Based on http://code.activestate.com/recipes/146306/ - Wade Leftwich -def encode_multipart_formdata(fields, files): +def encode_multipart_formdata(fields, files=None): """ fields is a dictionary of { name : value } for regular form fields. if value is a list, one form field is added for each item in the list @@ -633,13 +633,14 @@ def encode_multipart_formdata(fields, files): L.append('Content-Disposition: form-data; name="%s"' % key) L.append('') L.append(value) - for key in sorted(files.keys()): - (filename, content_type, value) = files[key] - L.append('--' + BOUNDARY) - L.append('Content-Disposition: form-data; name="%s"; filename="%s"' % (key, filename)) - L.append('Content-Type: %s' % content_type) - L.append('') - L.append(value) + if files: + for key in sorted(files.keys()): + (filename, content_type, value) = files[key] + L.append('--' + BOUNDARY) + L.append('Content-Disposition: form-data; name="%s"; filename="%s"' % (key, filename)) + L.append('Content-Type: %s' % content_type) + L.append('') + L.append(value) L.append('--' + BOUNDARY + '--') L.append('') body = CRLF.join(L) @@ -758,7 +759,7 @@ class BugServer(object): self.get_connection().request(method, url, data, headers) return self.get_connection().getresponse() - def send_post(self, url, fields, files): + def send_post(self, url, fields, files=None): content_type, body = encode_multipart_formdata(fields, files) return self.send_request("POST", url, data=body, headers={ 'Content-Type': content_type }) @@ -881,9 +882,7 @@ class Bug(object): if not 'bug_file_loc' in fields: fields['bug_file_loc'] = '' - files = {} - - response = self.server.send_post("/post_bug.cgi", fields, files) + response = self.server.send_post("/post_bug.cgi", fields) response_data = response.read() if response.status != 200: @@ -921,8 +920,7 @@ class Bug(object): # name 'obsolete' for each item in the list fields['obsolete'] = map(str, obsoletes) - files = {} - files['data'] = (filename, 'text/plain', data) + files = { 'data': (filename, 'text/plain', data) } response = self.server.send_post("/attachment.cgi", fields, files) response_data = response.read() -- cgit v1.2.3