diff --git a/netlib/utils.py b/netlib/utils.py index acc7ccd47..662258972 100644 --- a/netlib/utils.py +++ b/netlib/utils.py @@ -85,9 +85,9 @@ def hexdump(s): A generator of (offset, hex, str) tuples """ for i in range(0, len(s), 16): - offset = b"%.10x" % i + offset = "{:0=10x}".format(i).encode() part = s[i:i + 16] - x = b" ".join(b"%.2x" % i for i in six.iterbytes(part)) + x = b" ".join("{:0=2x}".format(i).encode() for i in six.iterbytes(part)) x = x.ljust(47) # 16*2 + 15 yield (offset, x, clean_bin(part, False)) diff --git a/netlib/wsgi.py b/netlib/wsgi.py index df248a19b..d6dfae5d1 100644 --- a/netlib/wsgi.py +++ b/netlib/wsgi.py @@ -96,16 +96,17 @@ class WSGIAdaptor(object): Make a best-effort attempt to write an error page. If headers are already sent, we just bung the error into the page. """ - c = b""" + c = """
%s"+
{err}"- """.strip() % s.encode() + """.format(err=s).strip().encode() + if not headers_sent: soc.write(b"HTTP/1.1 500 Internal Server Error\r\n") soc.write(b"Content-Type: text/html\r\n") - soc.write(b"Content-Length: %s\r\n" % len(c)) + soc.write("Content-Length: {length}\r\n".format(length=len(c)).encode()) soc.write(b"\r\n") soc.write(c) @@ -119,7 +120,7 @@ class WSGIAdaptor(object): def write(data): if not state["headers_sent"]: - soc.write(b"HTTP/1.1 %s\r\n" % state["status"].encode()) + soc.write("HTTP/1.1 {status}\r\n".format(status=state["status"]).encode()) headers = state["headers"] if 'server' not in headers: headers["Server"] = self.sversion diff --git a/test/test_wsgi.py b/test/test_wsgi.py index fe6f09b52..8c782b271 100644 --- a/test/test_wsgi.py +++ b/test/test_wsgi.py @@ -10,8 +10,8 @@ def tflow(): return wsgi.Flow(("127.0.0.1", 8888), req) -class TestApp: - +class ExampleApp: + def __init__(self): self.called = False @@ -35,7 +35,7 @@ class TestWSGI: assert r["QUERY_STRING"] == "bar=voing" def test_serve(self): - ta = TestApp() + ta = ExampleApp() w = wsgi.WSGIAdaptor(ta, "foo", 80, "version") f = tflow() f.request.host = "foo"