mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-01-18 18:56:28 +00:00
Port webish/test_webish to Python 3
This commit is contained in:
parent
eb8837a4c8
commit
b4b4a1aabf
0
newsfragments/3577.minor
Normal file
0
newsfragments/3577.minor
Normal file
@ -1,6 +1,16 @@
|
||||
"""
|
||||
Tests for ``allmydata.webish``.
|
||||
|
||||
Ported to Python 3.
|
||||
"""
|
||||
from __future__ import absolute_import
|
||||
from __future__ import division
|
||||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from future.utils import PY2
|
||||
if PY2:
|
||||
from future.builtins import filter, map, zip, ascii, chr, hex, input, next, oct, open, pow, round, super, bytes, dict, list, object, range, str, max, min # noqa: F401
|
||||
|
||||
from uuid import (
|
||||
uuid4,
|
||||
@ -96,7 +106,7 @@ class TahoeLAFSRequestTests(SyncTestCase):
|
||||
])
|
||||
self._fields_test(
|
||||
b"POST",
|
||||
{b"content-type": b"multipart/form-data; boundary={}".format(boundary)},
|
||||
{b"content-type": b"multipart/form-data; boundary=" + bytes(boundary, 'ascii')},
|
||||
form_data.encode("ascii"),
|
||||
AfterPreprocessing(
|
||||
lambda fs: {
|
||||
@ -105,8 +115,8 @@ class TahoeLAFSRequestTests(SyncTestCase):
|
||||
in fs.keys()
|
||||
},
|
||||
Equals({
|
||||
b"foo": b"bar",
|
||||
b"baz": b"some file contents",
|
||||
"foo": "bar",
|
||||
"baz": b"some file contents",
|
||||
}),
|
||||
),
|
||||
)
|
||||
|
@ -110,6 +110,7 @@ PORTED_MODULES = [
|
||||
"allmydata.util.spans",
|
||||
"allmydata.util.statistics",
|
||||
"allmydata.util.time_format",
|
||||
"allmydata.webish",
|
||||
]
|
||||
|
||||
PORTED_TEST_MODULES = [
|
||||
@ -179,6 +180,7 @@ PORTED_TEST_MODULES = [
|
||||
"allmydata.test.test_upload",
|
||||
"allmydata.test.test_uri",
|
||||
"allmydata.test.test_util",
|
||||
"allmydata.test.test_webish",
|
||||
"allmydata.test.web.test_common",
|
||||
"allmydata.test.web.test_grid",
|
||||
"allmydata.test.web.test_util",
|
||||
|
@ -1,3 +1,15 @@
|
||||
"""
|
||||
Ported to Python 3.
|
||||
"""
|
||||
from __future__ import absolute_import
|
||||
from __future__ import division
|
||||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from future.utils import PY2
|
||||
if PY2:
|
||||
from future.builtins import filter, map, zip, ascii, chr, hex, input, next, oct, open, pow, round, super, bytes, dict, list, object, range, str, max, min # noqa: F401
|
||||
|
||||
from six import ensure_str
|
||||
|
||||
import re, time, tempfile
|
||||
@ -65,18 +77,24 @@ class TahoeLAFSRequest(Request, object):
|
||||
self.path, argstring = x
|
||||
self.args = parse_qs(argstring, 1)
|
||||
|
||||
if self.method == 'POST':
|
||||
if self.method == b'POST':
|
||||
# We use FieldStorage here because it performs better than
|
||||
# cgi.parse_multipart(self.content, pdict) which is what
|
||||
# twisted.web.http.Request uses.
|
||||
self.fields = FieldStorage(
|
||||
self.content,
|
||||
{
|
||||
name.lower(): value[-1]
|
||||
for (name, value)
|
||||
in self.requestHeaders.getAllRawHeaders()
|
||||
},
|
||||
environ={'REQUEST_METHOD': 'POST'})
|
||||
|
||||
headers = {
|
||||
ensure_str(name.lower()): ensure_str(value[-1])
|
||||
for (name, value)
|
||||
in self.requestHeaders.getAllRawHeaders()
|
||||
}
|
||||
|
||||
if 'content-length' not in headers:
|
||||
# Python 3's cgi module would really, really like us to set
|
||||
# Content-Length. This seems likely to shoot performance in
|
||||
# the foot.
|
||||
headers['content-length'] = len(self.content.getvalue())
|
||||
|
||||
self.fields = FieldStorage(self.content, headers, environ={'REQUEST_METHOD': 'POST'})
|
||||
self.content.seek(0)
|
||||
|
||||
self._tahoeLAFSSecurityPolicy()
|
||||
|
Loading…
Reference in New Issue
Block a user