From 438933ec8d8ed1d688456c574113ef5a23cc0037 Mon Sep 17 00:00:00 2001 From: Itamar Turner-Trauring Date: Mon, 1 Feb 2021 11:02:00 -0500 Subject: [PATCH] Fix tests on Python 2. --- src/allmydata/test/web/test_web.py | 38 ++++++++++++++++-------------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/src/allmydata/test/web/test_web.py b/src/allmydata/test/web/test_web.py index b0db81839..de8b07a94 100644 --- a/src/allmydata/test/web/test_web.py +++ b/src/allmydata/test/web/test_web.py @@ -568,35 +568,37 @@ class WebMixin(TimezoneMixin): return do_http("delete", url) def build_form(self, **fields): - sepbase = "boogabooga" - sep = "--" + sepbase + sepbase = b"boogabooga" + sep = b"--" + sepbase form = [] form.append(sep) - form.append('Content-Disposition: form-data; name="_charset"') - form.append('') - form.append('UTF-8') + form.append(b'Content-Disposition: form-data; name="_charset"') + form.append(b'') + form.append(b'UTF-8') form.append(sep) for name, value in fields.items(): + if isinstance(name, unicode): + name = name.encode("utf-8") if isinstance(value, tuple): filename, value = value - form.append('Content-Disposition: form-data; name="%s"; ' - 'filename="%s"' % (name, filename)) + if isinstance(filename, unicode): + filename = filename.encode("utf-8") + form.append(b'Content-Disposition: form-data; name="%s"; ' + b'filename="%s"' % (name, filename)) else: - form.append('Content-Disposition: form-data; name="%s"' % name) - form.append('') - if isinstance(value, bytes): - value = unicode(value, "utf-8") - if not isinstance(value, unicode): - value = unicode(value) + form.append(b'Content-Disposition: form-data; name="%s"' % name) + form.append(b'') + if isinstance(value, unicode): + value = value.encode("utf-8") form.append(value) form.append(sep) - form[-1] += "--" - body = "" + form[-1] += b"--" + body = b"" headers = {} if fields: - body = "\r\n".join(form) + "\r\n" - headers["content-type"] = "multipart/form-data; boundary=%s" % sepbase - return (body.encode("utf-8"), headers) + body = b"\r\n".join(form) + b"\r\n" + headers["content-type"] = "multipart/form-data; boundary=%s" % unicode(sepbase, "utf-8") + return (body, headers) def POST(self, urlpath, **fields): body, headers = self.build_form(**fields)