From ce98a9219e060b729d4b0d2dc28bf4510649f0fd Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Mon, 17 Oct 2016 16:38:31 +1300 Subject: [PATCH] test & examples: zap six --- examples/sslstrip.py | 2 +- examples/upsidedownternet.py | 6 ++--- mitmproxy/protocol/tls.py | 9 ++++---- release/setup.py | 1 - setup.py | 1 - test/mitmproxy/builtins/test_dumper.py | 17 +++++++------- test/mitmproxy/builtins/test_termlog.py | 4 ++-- test/mitmproxy/test_controller.py | 2 +- test/mitmproxy/test_dump.py | 10 ++++----- test/mitmproxy/test_examples.py | 7 +++--- test/mitmproxy/test_flowfilter.py | 4 ++-- test/mitmproxy/tools/passive_close.py | 2 +- test/mitmproxy/tutils.py | 4 ++-- test/netlib/http/test_message.py | 6 ++--- test/netlib/http/test_request.py | 6 ----- test/netlib/http/test_url.py | 6 +---- test/netlib/test_debug.py | 6 ++--- test/netlib/test_strutils.py | 23 +++++-------------- test/netlib/test_tcp.py | 2 +- test/netlib/test_version_check.py | 6 ++--- test/netlib/tservers.py | 6 ++--- test/pathod/test_language_actions.py | 4 ++-- test/pathod/test_language_http.py | 16 ++++++------- test/pathod/test_language_http2.py | 16 ++++++------- test/pathod/test_language_writer.py | 30 ++++++++++++------------- test/pathod/test_log.py | 6 ++--- test/pathod/test_pathoc.py | 15 ++++++------- test/pathod/test_pathoc_cmdline.py | 4 ++-- test/pathod/test_pathod.py | 4 ++-- test/pathod/tutils.py | 15 ++++++------- 30 files changed, 107 insertions(+), 133 deletions(-) diff --git a/examples/sslstrip.py b/examples/sslstrip.py index 41cce8961..b5e463975 100644 --- a/examples/sslstrip.py +++ b/examples/sslstrip.py @@ -1,5 +1,5 @@ import re -from six.moves import urllib +import urllib # set of SSL/TLS capable hosts secure_hosts = set() diff --git a/examples/upsidedownternet.py b/examples/upsidedownternet.py index d50590922..d4de7e253 100644 --- a/examples/upsidedownternet.py +++ b/examples/upsidedownternet.py @@ -1,13 +1,13 @@ -from six.moves import cStringIO as StringIO +import io from PIL import Image def response(flow): if flow.response.headers.get("content-type", "").startswith("image"): try: - s = StringIO(flow.response.content) + s = io.StringIO(flow.response.content) img = Image.open(s).rotate(180) - s2 = StringIO() + s2 = io.StringIO() img.save(s2, "png") flow.response.content = s2.getvalue() flow.response.headers["content-type"] = "image/png" diff --git a/mitmproxy/protocol/tls.py b/mitmproxy/protocol/tls.py index 537737172..2a82cf172 100644 --- a/mitmproxy/protocol/tls.py +++ b/mitmproxy/protocol/tls.py @@ -535,10 +535,11 @@ class TlsLayer(base.Layer): except netlib.exceptions.TlsException as e: raise exceptions.TlsProtocolException( "Cannot establish TLS with {address} (sni: {sni}): {e}".format( - address=repr(self.server_conn.address), - sni=self.server_sni, - e=repr(e), - )) + address=repr(self.server_conn.address), + sni=self.server_sni, + e=repr(e) + ) + ) proto = self.alpn_for_client_connection.decode() if self.alpn_for_client_connection else '-' self.log("ALPN selected by server: {}".format(proto), "debug") diff --git a/release/setup.py b/release/setup.py index b8eb6eeca..5781ff9ba 100644 --- a/release/setup.py +++ b/release/setup.py @@ -9,7 +9,6 @@ setup( "twine>=1.6.5, <1.8", "virtualenv>=14.0.5, <15.1", "wheel>=0.29.0, <0.30", - "six>=1.10.0, <1.11", "pysftp>=0.2.8, !=0.2.9, <0.3", ], entry_points={ diff --git a/setup.py b/setup.py index 0c359f1c7..8f4fa5408 100644 --- a/setup.py +++ b/setup.py @@ -79,7 +79,6 @@ setup( "pyparsing>=2.1.3, <2.2", "pyperclip>=1.5.22, <1.6", "requests>=2.9.1, <2.12", - "six>=1.10, <1.11", "tornado>=4.3, <4.5", "urwid>=1.3.1, <1.4", "watchdog>=0.8.3, <0.9", diff --git a/test/mitmproxy/builtins/test_dumper.py b/test/mitmproxy/builtins/test_dumper.py index 9df187a55..20403eead 100644 --- a/test/mitmproxy/builtins/test_dumper.py +++ b/test/mitmproxy/builtins/test_dumper.py @@ -1,5 +1,6 @@ +import io + from .. import tutils, mastertest -from six.moves import cStringIO as StringIO from mitmproxy.builtins import dumper from mitmproxy.flow import state @@ -13,7 +14,7 @@ import mock class TestDumper(mastertest.MasterTest): def test_simple(self): d = dumper.Dumper() - sio = StringIO() + sio = io.StringIO() updated = {"tfile", "flow_detail"} d.configure(dump.Options(tfile = sio, flow_detail = 0), updated) @@ -24,17 +25,17 @@ class TestDumper(mastertest.MasterTest): d.response(tutils.tflow()) assert sio.getvalue() - sio = StringIO() + sio = io.StringIO() d.configure(dump.Options(tfile = sio, flow_detail = 4), updated) d.response(tutils.tflow(resp=True)) assert "<<" in sio.getvalue() - sio = StringIO() + sio = io.StringIO() d.configure(dump.Options(tfile = sio, flow_detail = 4), updated) d.response(tutils.tflow(err=True)) assert "<<" in sio.getvalue() - sio = StringIO() + sio = io.StringIO() d.configure(dump.Options(tfile = sio, flow_detail = 4), updated) flow = tutils.tflow() flow.request = netlib.tutils.treq() @@ -47,7 +48,7 @@ class TestDumper(mastertest.MasterTest): d.response(flow) assert sio.getvalue() - sio = StringIO() + sio = io.StringIO() d.configure(dump.Options(tfile = sio, flow_detail = 4), updated) flow = tutils.tflow(resp=netlib.tutils.tresp(content=b"{")) flow.response.headers["content-type"] = "application/json" @@ -55,7 +56,7 @@ class TestDumper(mastertest.MasterTest): d.response(flow) assert sio.getvalue() - sio = StringIO() + sio = io.StringIO() d.configure(dump.Options(tfile = sio), updated) flow = tutils.tflow() flow.request.content = None @@ -71,7 +72,7 @@ class TestContentView(mastertest.MasterTest): view_auto.side_effect = exceptions.ContentViewException("") s = state.State() - sio = StringIO() + sio = io.StringIO() o = dump.Options( flow_detail=4, verbosity=3, diff --git a/test/mitmproxy/builtins/test_termlog.py b/test/mitmproxy/builtins/test_termlog.py index a15104426..1564b53f1 100644 --- a/test/mitmproxy/builtins/test_termlog.py +++ b/test/mitmproxy/builtins/test_termlog.py @@ -1,5 +1,5 @@ from .. import mastertest -from six.moves import cStringIO as StringIO +import io from mitmproxy.builtins import termlog from mitmproxy import controller @@ -9,7 +9,7 @@ from mitmproxy import dump class TestTermLog(mastertest.MasterTest): def test_simple(self): t = termlog.TermLog() - sio = StringIO() + sio = io.StringIO() t.configure(dump.Options(tfile = sio, verbosity = 2), set([])) t.log(controller.LogEntry("one", "info")) assert "one" in sio.getvalue() diff --git a/test/mitmproxy/test_controller.py b/test/mitmproxy/test_controller.py index abf66b6c6..660ce1118 100644 --- a/test/mitmproxy/test_controller.py +++ b/test/mitmproxy/test_controller.py @@ -4,7 +4,7 @@ from threading import Thread, Event from mock import Mock from mitmproxy import controller -from six.moves import queue +import queue from mitmproxy.exceptions import Kill, ControlException from mitmproxy.proxy import DummyServer diff --git a/test/mitmproxy/test_dump.py b/test/mitmproxy/test_dump.py index 00b181667..d1443de41 100644 --- a/test/mitmproxy/test_dump.py +++ b/test/mitmproxy/test_dump.py @@ -1,5 +1,5 @@ import os -from six.moves import cStringIO as StringIO +import io from mitmproxy import dump, flow, exceptions from . import tutils, mastertest @@ -15,7 +15,7 @@ class TestDumpMaster(mastertest.MasterTest): options["verbosity"] = 0 if "flow_detail" not in options: options["flow_detail"] = 0 - o = dump.Options(filtstr=flt, tfile=StringIO(), **options) + o = dump.Options(filtstr=flt, tfile=io.StringIO(), **options) return dump.DumpMaster(None, o) def test_basic(self): @@ -38,7 +38,7 @@ class TestDumpMaster(mastertest.MasterTest): def test_error(self): o = dump.Options( - tfile=StringIO(), + tfile=io.StringIO(), flow_detail=1 ) m = dump.DumpMaster(None, o) @@ -107,7 +107,7 @@ class TestDumpMaster(mastertest.MasterTest): def test_replacements(self): o = dump.Options( replacements=[(".*", "content", "foo")], - tfile = StringIO(), + tfile = io.StringIO(), ) o.verbosity = 0 o.flow_detail = 0 @@ -118,7 +118,7 @@ class TestDumpMaster(mastertest.MasterTest): def test_setheader(self): o = dump.Options( setheaders=[(".*", "one", "two")], - tfile=StringIO() + tfile=io.StringIO() ) o.verbosity = 0 o.flow_detail = 0 diff --git a/test/mitmproxy/test_examples.py b/test/mitmproxy/test_examples.py index 483cb2285..81e8801c9 100644 --- a/test/mitmproxy/test_examples.py +++ b/test/mitmproxy/test_examples.py @@ -1,7 +1,6 @@ import json import os - -import six +import shlex from mitmproxy import options from mitmproxy import contentviews @@ -122,7 +121,7 @@ class TestHARDump(): with tutils.tmpdir() as tdir: path = os.path.join(tdir, "somefile") - m, sc = tscript("har_dump.py", six.moves.shlex_quote(path)) + m, sc = tscript("har_dump.py", shlex.quote(path)) m.addons.invoke(m, "response", self.flow()) m.addons.remove(sc) @@ -135,7 +134,7 @@ class TestHARDump(): with tutils.tmpdir() as tdir: path = os.path.join(tdir, "somefile") - m, sc = tscript("har_dump.py", six.moves.shlex_quote(path)) + m, sc = tscript("har_dump.py", shlex.quote(path)) m.addons.invoke(m, "response", self.flow(resp_content=b"foo" + b"\xFF" * 10)) m.addons.remove(sc) diff --git a/test/mitmproxy/test_flowfilter.py b/test/mitmproxy/test_flowfilter.py index e8d19ffa6..8fa30900a 100644 --- a/test/mitmproxy/test_flowfilter.py +++ b/test/mitmproxy/test_flowfilter.py @@ -1,4 +1,4 @@ -from six.moves import cStringIO as StringIO +import io from mock import patch from mitmproxy import flowfilter @@ -9,7 +9,7 @@ from . import tutils class TestParsing: def _dump(self, x): - c = StringIO() + c = io.StringIO() x.dump(fp=c) assert c.getvalue() diff --git a/test/mitmproxy/tools/passive_close.py b/test/mitmproxy/tools/passive_close.py index acbb31010..71b1022f4 100644 --- a/test/mitmproxy/tools/passive_close.py +++ b/test/mitmproxy/tools/passive_close.py @@ -1,4 +1,4 @@ -from six.moves import socketserver +import socketserver from time import sleep diff --git a/test/mitmproxy/tutils.py b/test/mitmproxy/tutils.py index d743a9e62..575dacf03 100644 --- a/test/mitmproxy/tutils.py +++ b/test/mitmproxy/tutils.py @@ -7,7 +7,7 @@ import sys from contextlib import contextmanager from unittest.case import SkipTest -from six.moves import cStringIO as StringIO +import io import netlib.utils import netlib.tutils @@ -203,7 +203,7 @@ raises = netlib.tutils.raises @contextmanager def capture_stderr(command, *args, **kwargs): - out, sys.stderr = sys.stderr, StringIO() + out, sys.stderr = sys.stderr, io.StringIO() command(*args, **kwargs) yield sys.stderr.getvalue() sys.stderr = out diff --git a/test/netlib/http/test_message.py b/test/netlib/http/test_message.py index 742723099..5d533ad77 100644 --- a/test/netlib/http/test_message.py +++ b/test/netlib/http/test_message.py @@ -1,8 +1,6 @@ # -*- coding: utf-8 -*- from __future__ import absolute_import, print_function, division -import six - from netlib.tutils import tresp from netlib import http, tutils @@ -245,7 +243,7 @@ class TestMessageText(object): with tutils.raises(ValueError): assert r.text - assert r.get_text(strict=False) == u'\ufffd' if six.PY2 else '\udcff' + assert r.get_text(strict=False) == '\udcff' def test_cannot_encode(self): r = tresp() @@ -271,4 +269,4 @@ class TestMessageText(object): r.headers["content-type"] = "text/html; charset=latin1" r.text = u'\udcff' assert r.headers["content-type"] == "text/html; charset=utf-8" - assert r.raw_content == b'\xed\xb3\xbf' if six.PY2 else b"\xFF" + assert r.raw_content == b"\xFF" diff --git a/test/netlib/http/test_request.py b/test/netlib/http/test_request.py index 9baabaa6d..1f01d29d0 100644 --- a/test/netlib/http/test_request.py +++ b/test/netlib/http/test_request.py @@ -1,8 +1,6 @@ # -*- coding: utf-8 -*- from __future__ import absolute_import, print_function, division -import six - from netlib.http import Headers from netlib.tutils import treq, raises from .test_message import _test_decoded_attr, _test_passthrough_attr @@ -57,10 +55,6 @@ class TestRequestCore(object): assert req.data.path is None def test_host(self): - if six.PY2: - from unittest import SkipTest - raise SkipTest() - request = treq() assert request.host == request.data.host.decode("idna") diff --git a/test/netlib/http/test_url.py b/test/netlib/http/test_url.py index 768e51302..631ed8a9b 100644 --- a/test/netlib/http/test_url.py +++ b/test/netlib/http/test_url.py @@ -1,4 +1,3 @@ -import six from netlib import tutils from netlib.http import url @@ -58,10 +57,7 @@ def test_unparse(): assert url.unparse("https", "foo.com", 443, "") == "https://foo.com" -if six.PY2: - surrogates = bytes(bytearray(range(256))) -else: - surrogates = bytes(range(256)).decode("utf8", "surrogateescape") +surrogates = bytes(range(256)).decode("utf8", "surrogateescape") surrogates_quoted = ( '%00%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F' diff --git a/test/netlib/test_debug.py b/test/netlib/test_debug.py index 9ceaace98..4732125b0 100644 --- a/test/netlib/test_debug.py +++ b/test/netlib/test_debug.py @@ -1,17 +1,17 @@ from __future__ import (absolute_import, print_function, division) -from six.moves import cStringIO as StringIO +import io from netlib import debug def test_dump_info(): - cs = StringIO() + cs = io.StringIO() debug.dump_info(None, None, file=cs, testing=True) assert cs.getvalue() def test_dump_stacks(): - cs = StringIO() + cs = io.StringIO() debug.dump_stacks(None, None, file=cs, testing=True) assert cs.getvalue() diff --git a/test/netlib/test_strutils.py b/test/netlib/test_strutils.py index 0f58cac57..36f709dae 100644 --- a/test/netlib/test_strutils.py +++ b/test/netlib/test_strutils.py @@ -1,5 +1,3 @@ -import six - from netlib import strutils, tutils @@ -15,12 +13,8 @@ def test_always_bytes(): def test_native(): with tutils.raises(TypeError): strutils.native(42) - if six.PY2: - assert strutils.native(u"foo") == b"foo" - assert strutils.native(b"foo") == b"foo" - else: - assert strutils.native(u"foo") == u"foo" - assert strutils.native(b"foo") == u"foo" + assert strutils.native(u"foo") == u"foo" + assert strutils.native(b"foo") == u"foo" def test_escape_control_characters(): @@ -40,9 +34,8 @@ def test_escape_control_characters(): u'=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~.' ) - if not six.PY2: - with tutils.raises(ValueError): - strutils.escape_control_characters(b"foo") + with tutils.raises(ValueError): + strutils.escape_control_characters(b"foo") def test_bytes_to_escaped_str(): @@ -76,12 +69,8 @@ def test_escaped_str_to_bytes(): assert strutils.escaped_str_to_bytes(u"&!?=\\\\)") == br"&!?=\)" assert strutils.escaped_str_to_bytes(u"\u00fc") == b'\xc3\xbc' - if six.PY2: - with tutils.raises(ValueError): - strutils.escaped_str_to_bytes(42) - else: - with tutils.raises(ValueError): - strutils.escaped_str_to_bytes(b"very byte") + with tutils.raises(ValueError): + strutils.escaped_str_to_bytes(b"very byte") def test_is_mostly_bin(): diff --git a/test/netlib/test_tcp.py b/test/netlib/test_tcp.py index dc2f4e7e7..797a5a04c 100644 --- a/test/netlib/test_tcp.py +++ b/test/netlib/test_tcp.py @@ -1,5 +1,5 @@ from io import BytesIO -from six.moves import queue +import queue import time import socket import random diff --git a/test/netlib/test_version_check.py b/test/netlib/test_version_check.py index fa6b19e5b..01820dad8 100644 --- a/test/netlib/test_version_check.py +++ b/test/netlib/test_version_check.py @@ -1,11 +1,11 @@ -from io import StringIO +import io import mock from netlib import version_check @mock.patch("sys.exit") def test_check_pyopenssl_version(sexit): - fp = StringIO() + fp = io.StringIO() version_check.check_pyopenssl_version(fp=fp) assert not fp.getvalue() assert not sexit.called @@ -19,7 +19,7 @@ def test_check_pyopenssl_version(sexit): @mock.patch("OpenSSL.__version__") def test_unparseable_pyopenssl_version(version, sexit): version.split.return_value = ["foo", "bar"] - fp = StringIO() + fp = io.StringIO() version_check.check_pyopenssl_version(fp=fp) assert "Cannot parse" in fp.getvalue() assert not sexit.called diff --git a/test/netlib/tservers.py b/test/netlib/tservers.py index a80dcb28e..10a6f70a5 100644 --- a/test/netlib/tservers.py +++ b/test/netlib/tservers.py @@ -1,8 +1,8 @@ from __future__ import (absolute_import, print_function, division) import threading -from six.moves import queue -from io import StringIO +import queue +import io import OpenSSL from netlib import tcp @@ -80,7 +80,7 @@ class _TServer(tcp.TCPServer): h.finish() def handle_error(self, connection, client_address, fp=None): - s = StringIO() + s = io.StringIO() tcp.TCPServer.handle_error(self, connection, client_address, s) self.q.put(s.getvalue()) diff --git a/test/pathod/test_language_actions.py b/test/pathod/test_language_actions.py index 2b1b69155..9740e5c79 100644 --- a/test/pathod/test_language_actions.py +++ b/test/pathod/test_language_actions.py @@ -1,4 +1,4 @@ -from six import BytesIO +import io from pathod.language import actions, parse_pathoc, parse_pathod, serve @@ -60,7 +60,7 @@ class TestInject: assert v.offset == "r" def test_serve(self): - s = BytesIO() + s = io.BytesIO() r = next(parse_pathod("400:i0,'foo'")) assert serve(r, s, {}) diff --git a/test/pathod/test_language_http.py b/test/pathod/test_language_http.py index dd0b8d025..e1eabe4a1 100644 --- a/test/pathod/test_language_http.py +++ b/test/pathod/test_language_http.py @@ -1,4 +1,4 @@ -from six import BytesIO +import io from pathod import language from pathod.language import http, base @@ -10,7 +10,7 @@ def parse_request(s): def test_make_error_response(): - d = BytesIO() + d = io.BytesIO() s = http.make_error_response("foo") language.serve(s, d, {}) @@ -76,7 +76,7 @@ class TestRequest: assert r[0].values({}) def test_render(self): - s = BytesIO() + s = io.BytesIO() r = parse_request("GET:'/foo'") assert language.serve( r, @@ -163,7 +163,7 @@ class TestResponse: assert b"OK" in [i[:] for i in r.preamble({})] def test_render(self): - s = BytesIO() + s = io.BytesIO() r = next(language.parse_pathod("400:m'msg'")) assert language.serve(r, s, {}) @@ -173,13 +173,13 @@ class TestResponse: assert "p0" not in s.spec() def test_raw(self): - s = BytesIO() + s = io.BytesIO() r = next(language.parse_pathod("400:b'foo'")) language.serve(r, s, {}) v = s.getvalue() assert b"Content-Length" in v - s = BytesIO() + s = io.BytesIO() r = next(language.parse_pathod("400:b'foo':r")) language.serve(r, s, {}) v = s.getvalue() @@ -187,7 +187,7 @@ class TestResponse: def test_length(self): def testlen(x): - s = BytesIO() + s = io.BytesIO() x = next(x) language.serve(x, s, language.Settings()) assert x.length(language.Settings()) == len(s.getvalue()) @@ -198,7 +198,7 @@ class TestResponse: def test_maximum_length(self): def testlen(x): x = next(x) - s = BytesIO() + s = io.BytesIO() m = x.maximum_length({}) language.serve(x, s, {}) assert m >= len(s.getvalue()) diff --git a/test/pathod/test_language_http2.py b/test/pathod/test_language_http2.py index f4b340479..11e100ac8 100644 --- a/test/pathod/test_language_http2.py +++ b/test/pathod/test_language_http2.py @@ -1,4 +1,4 @@ -from six import BytesIO +import io from netlib import tcp from netlib.http import user_agents @@ -26,7 +26,7 @@ def default_settings(): def test_make_error_response(): - d = BytesIO() + d = io.BytesIO() s = http2.make_error_response("foo", "bar") language.serve(s, d, default_settings()) @@ -85,7 +85,7 @@ class TestRequest: assert r[1].method.string() == b"GET" def test_render_simple(self): - s = BytesIO() + s = io.BytesIO() r = parse_request("GET:'/foo'") assert language.serve( r, @@ -127,7 +127,7 @@ class TestRequest: assert r.headers[0].values(default_settings()) == (b"user-agent", user_agents.get_by_shortcut('a')[2].encode()) def test_render_with_headers(self): - s = BytesIO() + s = io.BytesIO() r = parse_request('GET:/foo:h"foo"="bar"') assert language.serve( r, @@ -143,7 +143,7 @@ class TestRequest: assert r.values(default_settings()) def test_render_with_body(self): - s = BytesIO() + s = io.BytesIO() r = parse_request("GET:'/foo':bfoobar") assert language.serve( r, @@ -200,7 +200,7 @@ class TestResponse: assert r.body.string() == b"foobar" def test_render_simple(self): - s = BytesIO() + s = io.BytesIO() r = parse_response('200') assert language.serve( r, @@ -209,7 +209,7 @@ class TestResponse: ) def test_render_with_headers(self): - s = BytesIO() + s = io.BytesIO() r = parse_response('200:h"foo"="bar"') assert language.serve( r, @@ -218,7 +218,7 @@ class TestResponse: ) def test_render_with_body(self): - s = BytesIO() + s = io.BytesIO() r = parse_response('200:bfoobar') assert language.serve( r, diff --git a/test/pathod/test_language_writer.py b/test/pathod/test_language_writer.py index e857e0845..7feb985d5 100644 --- a/test/pathod/test_language_writer.py +++ b/test/pathod/test_language_writer.py @@ -1,4 +1,4 @@ -from six import BytesIO +import io from pathod import language from pathod.language import writer @@ -6,12 +6,12 @@ from pathod.language import writer def test_send_chunk(): v = b"foobarfoobar" for bs in range(1, len(v) + 2): - s = BytesIO() + s = io.BytesIO() writer.send_chunk(s, v, bs, 0, len(v)) assert s.getvalue() == v for start in range(len(v)): for end in range(len(v)): - s = BytesIO() + s = io.BytesIO() writer.send_chunk(s, v, bs, start, end) assert s.getvalue() == v[start:end] @@ -19,21 +19,21 @@ def test_send_chunk(): def test_write_values_inject(): tst = b"foo" - s = BytesIO() + s = io.BytesIO() writer.write_values(s, [tst], [(0, "inject", b"aaa")], blocksize=5) assert s.getvalue() == b"aaafoo" - s = BytesIO() + s = io.BytesIO() writer.write_values(s, [tst], [(1, "inject", b"aaa")], blocksize=5) assert s.getvalue() == b"faaaoo" - s = BytesIO() + s = io.BytesIO() writer.write_values(s, [tst], [(1, "inject", b"aaa")], blocksize=5) assert s.getvalue() == b"faaaoo" def test_write_values_disconnects(): - s = BytesIO() + s = io.BytesIO() tst = b"foo" * 100 writer.write_values(s, [tst], [(0, "disconnect")], blocksize=5) assert not s.getvalue() @@ -41,13 +41,13 @@ def test_write_values_disconnects(): def test_write_values(): tst = b"foobarvoing" - s = BytesIO() + s = io.BytesIO() writer.write_values(s, [tst], []) assert s.getvalue() == tst for bs in range(1, len(tst) + 2): for off in range(len(tst)): - s = BytesIO() + s = io.BytesIO() writer.write_values( s, [tst], [(off, "disconnect")], blocksize=bs ) @@ -57,34 +57,34 @@ def test_write_values(): def test_write_values_pauses(): tst = "".join(str(i) for i in range(10)).encode() for i in range(2, 10): - s = BytesIO() + s = io.BytesIO() writer.write_values( s, [tst], [(2, "pause", 0), (1, "pause", 0)], blocksize=i ) assert s.getvalue() == tst for i in range(2, 10): - s = BytesIO() + s = io.BytesIO() writer.write_values(s, [tst], [(1, "pause", 0)], blocksize=i) assert s.getvalue() == tst tst = [tst] * 5 for i in range(2, 10): - s = BytesIO() + s = io.BytesIO() writer.write_values(s, tst[:], [(1, "pause", 0)], blocksize=i) assert s.getvalue() == b"".join(tst) def test_write_values_after(): - s = BytesIO() + s = io.BytesIO() r = next(language.parse_pathod("400:da")) language.serve(r, s, {}) - s = BytesIO() + s = io.BytesIO() r = next(language.parse_pathod("400:pa,0")) language.serve(r, s, {}) - s = BytesIO() + s = io.BytesIO() r = next(language.parse_pathod("400:ia,'xx'")) language.serve(r, s, {}) assert s.getvalue().endswith(b'xx') diff --git a/test/pathod/test_log.py b/test/pathod/test_log.py index 0cd5b3b02..deb0f6138 100644 --- a/test/pathod/test_log.py +++ b/test/pathod/test_log.py @@ -1,10 +1,10 @@ +import io + from pathod import log from netlib.exceptions import TcpDisconnect -import six - -class DummyIO(six.StringIO): +class DummyIO(io.StringIO): def start_log(self, *args, **kwargs): pass diff --git a/test/pathod/test_pathoc.py b/test/pathod/test_pathoc.py index 361a863bb..f9670d734 100644 --- a/test/pathod/test_pathoc.py +++ b/test/pathod/test_pathoc.py @@ -1,5 +1,4 @@ -from six.moves import cStringIO as StringIO -from six import BytesIO +import io from mock import Mock from netlib import http @@ -21,7 +20,7 @@ def test_response(): class PathocTestDaemon(tutils.DaemonTests): def tval(self, requests, timeout=None, showssl=False, **kwargs): - s = StringIO() + s = io.StringIO() c = pathoc.Pathoc( ("127.0.0.1", self.d.port), ssl=self.ssl, @@ -71,7 +70,7 @@ class TestDaemonSSL(PathocTestDaemon): assert log[0]["request"]["clientcert"]["keyinfo"] def test_http2_without_ssl(self): - fp = StringIO() + fp = io.StringIO() c = pathoc.Pathoc( ("127.0.0.1", self.d.port), use_http2=True, @@ -171,15 +170,15 @@ class TestDaemon(PathocTestDaemon): def test_connect_fail(self): to = ("foobar", 80) c = pathoc.Pathoc(("127.0.0.1", self.d.port), fp=None) - c.rfile, c.wfile = BytesIO(), BytesIO() + c.rfile, c.wfile = io.BytesIO(), io.BytesIO() with raises("connect failed"): c.http_connect(to) - c.rfile = BytesIO( + c.rfile = io.BytesIO( b"HTTP/1.1 500 OK\r\n" ) with raises("connect failed"): c.http_connect(to) - c.rfile = BytesIO( + c.rfile = io.BytesIO( b"HTTP/1.1 200 OK\r\n" ) c.http_connect(to) @@ -187,7 +186,7 @@ class TestDaemon(PathocTestDaemon): def test_socks_connect(self): to = ("foobar", 80) c = pathoc.Pathoc(("127.0.0.1", self.d.port), fp=None) - c.rfile, c.wfile = tutils.treader(b""), BytesIO() + c.rfile, c.wfile = tutils.treader(b""), io.BytesIO() tutils.raises(pathoc.PathocError, c.socks_connect, to) c.rfile = tutils.treader( diff --git a/test/pathod/test_pathoc_cmdline.py b/test/pathod/test_pathoc_cmdline.py index 922cf3a94..7f51929f1 100644 --- a/test/pathod/test_pathoc_cmdline.py +++ b/test/pathod/test_pathoc_cmdline.py @@ -1,4 +1,4 @@ -from six.moves import cStringIO as StringIO +import io import mock from pathod import pathoc_cmdline as cmdline @@ -9,7 +9,7 @@ from . import tutils @mock.patch("argparse.ArgumentParser.error") def test_pathoc(perror): assert cmdline.args_pathoc(["pathoc", "foo.com", "get:/"]) - s = StringIO() + s = io.StringIO() with tutils.raises(SystemExit): cmdline.args_pathoc(["pathoc", "--show-uas"], s, s) diff --git a/test/pathod/test_pathod.py b/test/pathod/test_pathod.py index 0b34f9243..d119348aa 100644 --- a/test/pathod/test_pathod.py +++ b/test/pathod/test_pathod.py @@ -1,4 +1,4 @@ -from six.moves import cStringIO as StringIO +import io from pathod import pathod from netlib import tcp @@ -10,7 +10,7 @@ from . import tutils class TestPathod(object): def test_logging(self): - s = StringIO() + s = io.StringIO() p = pathod.Pathod(("127.0.0.1", 0), logfp=s) assert len(p.get_log()) == 0 id = p.add_log(dict(s="foo")) diff --git a/test/pathod/tutils.py b/test/pathod/tutils.py index 3a94b6eb0..518485ba1 100644 --- a/test/pathod/tutils.py +++ b/test/pathod/tutils.py @@ -2,9 +2,8 @@ import tempfile import re import shutil import requests -from six.moves import cStringIO as StringIO -from six.moves import urllib -from six import BytesIO +import io +import urllib from netlib import tcp from netlib import utils @@ -20,7 +19,7 @@ def treader(bytes): """ Construct a tcp.Read object from bytes. """ - fp = BytesIO(bytes) + fp = io.BytesIO(bytes) return tcp.Reader(fp) @@ -79,7 +78,7 @@ class DaemonTests(object): return resp def getpath(self, path, params=None): - logfp = StringIO() + logfp = io.StringIO() c = pathoc.Pathoc( ("localhost", self.d.port), ssl=self.ssl, @@ -92,7 +91,7 @@ class DaemonTests(object): return resp def get(self, spec): - logfp = StringIO() + logfp = io.StringIO() c = pathoc.Pathoc( ("localhost", self.d.port), ssl=self.ssl, @@ -118,7 +117,7 @@ class DaemonTests(object): """ if ssl is None: ssl = self.ssl - logfp = StringIO() + logfp = io.StringIO() c = pathoc.Pathoc( ("localhost", self.d.port), ssl=ssl, @@ -148,6 +147,6 @@ test_data = utils.Data(__name__) def render(r, settings=language.Settings()): r = r.resolve(settings) - s = BytesIO() + s = io.BytesIO() assert language.serve(r, s, settings) return s.getvalue()