From 8317772377baa5eaa9c4d05014f952337f4d03cd Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Wed, 20 Jul 2016 11:10:15 +1200 Subject: mitproxy.options -> mitmproxy.optmanager, mitmproxy.flow.options -> mitmproxy.options It might be slightly more felicitous to move optmanager into netlib at some point, especially if we can also use it in pathod. This also consolidates our constants in mitmproxy.options, removing some duplicates. --- test/mitmproxy/builtins/test_anticache.py | 2 +- test/mitmproxy/builtins/test_anticomp.py | 2 +- test/mitmproxy/builtins/test_filestreamer.py | 2 +- test/mitmproxy/builtins/test_replace.py | 2 +- test/mitmproxy/builtins/test_script.py | 2 +- test/mitmproxy/builtins/test_setheaders.py | 2 +- test/mitmproxy/builtins/test_stickyauth.py | 2 +- test/mitmproxy/builtins/test_stickycookie.py | 2 +- test/mitmproxy/test_flow.py | 7 +- test/mitmproxy/test_options.py | 100 --------------------------- test/mitmproxy/test_optmanager.py | 100 +++++++++++++++++++++++++++ test/mitmproxy/test_protocol_http2.py | 5 +- test/mitmproxy/test_proxy.py | 2 +- test/mitmproxy/tservers.py | 10 ++- 14 files changed, 118 insertions(+), 122 deletions(-) delete mode 100644 test/mitmproxy/test_options.py create mode 100644 test/mitmproxy/test_optmanager.py (limited to 'test') diff --git a/test/mitmproxy/builtins/test_anticache.py b/test/mitmproxy/builtins/test_anticache.py index 127e1c1a..5a00af03 100644 --- a/test/mitmproxy/builtins/test_anticache.py +++ b/test/mitmproxy/builtins/test_anticache.py @@ -2,7 +2,7 @@ from .. import tutils, mastertest from mitmproxy.builtins import anticache from mitmproxy.flow import master from mitmproxy.flow import state -from mitmproxy.flow import options +from mitmproxy import options class TestAntiCache(mastertest.MasterTest): diff --git a/test/mitmproxy/builtins/test_anticomp.py b/test/mitmproxy/builtins/test_anticomp.py index 601e56c8..6bfd54bb 100644 --- a/test/mitmproxy/builtins/test_anticomp.py +++ b/test/mitmproxy/builtins/test_anticomp.py @@ -2,7 +2,7 @@ from .. import tutils, mastertest from mitmproxy.builtins import anticomp from mitmproxy.flow import master from mitmproxy.flow import state -from mitmproxy.flow import options +from mitmproxy import options class TestAntiComp(mastertest.MasterTest): diff --git a/test/mitmproxy/builtins/test_filestreamer.py b/test/mitmproxy/builtins/test_filestreamer.py index 002006b7..c1d5947f 100644 --- a/test/mitmproxy/builtins/test_filestreamer.py +++ b/test/mitmproxy/builtins/test_filestreamer.py @@ -7,7 +7,7 @@ import os.path from mitmproxy.builtins import filestreamer from mitmproxy.flow import master, FlowReader from mitmproxy.flow import state -from mitmproxy.flow import options +from mitmproxy import options class TestStream(mastertest.MasterTest): diff --git a/test/mitmproxy/builtins/test_replace.py b/test/mitmproxy/builtins/test_replace.py index f8010bec..a0b4b722 100644 --- a/test/mitmproxy/builtins/test_replace.py +++ b/test/mitmproxy/builtins/test_replace.py @@ -2,7 +2,7 @@ from .. import tutils, mastertest from mitmproxy.builtins import replace from mitmproxy.flow import master from mitmproxy.flow import state -from mitmproxy.flow import options +from mitmproxy import options class TestReplace(mastertest.MasterTest): diff --git a/test/mitmproxy/builtins/test_script.py b/test/mitmproxy/builtins/test_script.py index c9616249..f37c7f94 100644 --- a/test/mitmproxy/builtins/test_script.py +++ b/test/mitmproxy/builtins/test_script.py @@ -4,7 +4,7 @@ from mitmproxy.builtins import script from mitmproxy import exceptions from mitmproxy.flow import master from mitmproxy.flow import state -from mitmproxy.flow import options +from mitmproxy import options from .. import tutils, mastertest diff --git a/test/mitmproxy/builtins/test_setheaders.py b/test/mitmproxy/builtins/test_setheaders.py index 1a8d048c..4465719d 100644 --- a/test/mitmproxy/builtins/test_setheaders.py +++ b/test/mitmproxy/builtins/test_setheaders.py @@ -2,7 +2,7 @@ from .. import tutils, mastertest from mitmproxy.builtins import setheaders from mitmproxy.flow import state -from mitmproxy.flow import options +from mitmproxy import options class TestSetHeaders(mastertest.MasterTest): diff --git a/test/mitmproxy/builtins/test_stickyauth.py b/test/mitmproxy/builtins/test_stickyauth.py index 1e617402..9233f435 100644 --- a/test/mitmproxy/builtins/test_stickyauth.py +++ b/test/mitmproxy/builtins/test_stickyauth.py @@ -2,7 +2,7 @@ from .. import tutils, mastertest from mitmproxy.builtins import stickyauth from mitmproxy.flow import master from mitmproxy.flow import state -from mitmproxy.flow import options +from mitmproxy import options class TestStickyAuth(mastertest.MasterTest): diff --git a/test/mitmproxy/builtins/test_stickycookie.py b/test/mitmproxy/builtins/test_stickycookie.py index b8d703bd..81b540db 100644 --- a/test/mitmproxy/builtins/test_stickycookie.py +++ b/test/mitmproxy/builtins/test_stickycookie.py @@ -2,7 +2,7 @@ from .. import tutils, mastertest from mitmproxy.builtins import stickycookie from mitmproxy.flow import master from mitmproxy.flow import state -from mitmproxy.flow import options +from mitmproxy import options from netlib import tutils as ntutils diff --git a/test/mitmproxy/test_flow.py b/test/mitmproxy/test_flow.py index e17a125c..36b212a7 100644 --- a/test/mitmproxy/test_flow.py +++ b/test/mitmproxy/test_flow.py @@ -3,8 +3,7 @@ import io import netlib.utils from netlib.http import Headers -from mitmproxy import filt, controller, flow -from mitmproxy.flow import options +from mitmproxy import filt, controller, flow, options from mitmproxy.contrib import tnetstring from mitmproxy.exceptions import FlowReadException from mitmproxy.models import Error @@ -745,7 +744,7 @@ class TestFlowMaster: f = tutils.tflow(resp=True) pb = [tutils.tflow(resp=True), f] fm = flow.FlowMaster( - flow.options.Options(), + options.Options(), DummyServer(ProxyConfig(options.Options())), s ) @@ -776,7 +775,7 @@ class TestFlowMaster: f.response = HTTPResponse.wrap(netlib.tutils.tresp(content=f.request)) pb = [f] - fm = flow.FlowMaster(flow.options.Options(), None, s) + fm = flow.FlowMaster(options.Options(), None, s) fm.refresh_server_playback = True assert not fm.do_server_playback(tutils.tflow()) diff --git a/test/mitmproxy/test_options.py b/test/mitmproxy/test_options.py deleted file mode 100644 index af619b27..00000000 --- a/test/mitmproxy/test_options.py +++ /dev/null @@ -1,100 +0,0 @@ -from __future__ import absolute_import, print_function, division -import copy - -from mitmproxy import options -from mitmproxy import exceptions -from netlib import tutils - - -class TO(options.Options): - def __init__(self, one=None, two=None): - self.one = one - self.two = two - super(TO, self).__init__() - - -def test_options(): - o = TO(two="three") - assert o.one is None - assert o.two == "three" - o.one = "one" - assert o.one == "one" - - with tutils.raises(TypeError): - TO(nonexistent = "value") - with tutils.raises("no such option"): - o.nonexistent = "value" - with tutils.raises("no such option"): - o.update(nonexistent = "value") - - rec = [] - - def sub(opts): - rec.append(copy.copy(opts)) - - o.changed.connect(sub) - - o.one = "ninety" - assert len(rec) == 1 - assert rec[-1].one == "ninety" - - o.update(one="oink") - assert len(rec) == 2 - assert rec[-1].one == "oink" - - -def test_setter(): - o = TO(two="three") - f = o.setter("two") - f("xxx") - assert o.two == "xxx" - with tutils.raises("no such option"): - o.setter("nonexistent") - - -def test_toggler(): - o = TO(two=True) - f = o.toggler("two") - f() - assert o.two is False - f() - assert o.two is True - with tutils.raises("no such option"): - o.toggler("nonexistent") - - -def test_rollback(): - o = TO(one="two") - - rec = [] - - def sub(opts): - rec.append(copy.copy(opts)) - - recerr = [] - - def errsub(opts, **kwargs): - recerr.append(kwargs) - - def err(opts): - if opts.one == "ten": - raise exceptions.OptionsError() - - o.changed.connect(sub) - o.changed.connect(err) - o.errored.connect(errsub) - - o.one = "ten" - assert isinstance(recerr[0]["exc"], exceptions.OptionsError) - assert o.one == "two" - assert len(rec) == 2 - assert rec[0].one == "ten" - assert rec[1].one == "two" - - -def test_repr(): - assert repr(TO()) == "test.mitmproxy.test_options.TO({'one': None, 'two': None})" - assert repr(TO(one='x' * 60)) == """test.mitmproxy.test_options.TO({ - 'one': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', - 'two': None -})""" diff --git a/test/mitmproxy/test_optmanager.py b/test/mitmproxy/test_optmanager.py new file mode 100644 index 00000000..67f76ecd --- /dev/null +++ b/test/mitmproxy/test_optmanager.py @@ -0,0 +1,100 @@ +from __future__ import absolute_import, print_function, division +import copy + +from mitmproxy import optmanager +from mitmproxy import exceptions +from netlib import tutils + + +class TO(optmanager.OptManager): + def __init__(self, one=None, two=None): + self.one = one + self.two = two + super(TO, self).__init__() + + +def test_options(): + o = TO(two="three") + assert o.one is None + assert o.two == "three" + o.one = "one" + assert o.one == "one" + + with tutils.raises(TypeError): + TO(nonexistent = "value") + with tutils.raises("no such option"): + o.nonexistent = "value" + with tutils.raises("no such option"): + o.update(nonexistent = "value") + + rec = [] + + def sub(opts): + rec.append(copy.copy(opts)) + + o.changed.connect(sub) + + o.one = "ninety" + assert len(rec) == 1 + assert rec[-1].one == "ninety" + + o.update(one="oink") + assert len(rec) == 2 + assert rec[-1].one == "oink" + + +def test_setter(): + o = TO(two="three") + f = o.setter("two") + f("xxx") + assert o.two == "xxx" + with tutils.raises("no such option"): + o.setter("nonexistent") + + +def test_toggler(): + o = TO(two=True) + f = o.toggler("two") + f() + assert o.two is False + f() + assert o.two is True + with tutils.raises("no such option"): + o.toggler("nonexistent") + + +def test_rollback(): + o = TO(one="two") + + rec = [] + + def sub(opts): + rec.append(copy.copy(opts)) + + recerr = [] + + def errsub(opts, **kwargs): + recerr.append(kwargs) + + def err(opts): + if opts.one == "ten": + raise exceptions.OptionsError() + + o.changed.connect(sub) + o.changed.connect(err) + o.errored.connect(errsub) + + o.one = "ten" + assert isinstance(recerr[0]["exc"], exceptions.OptionsError) + assert o.one == "two" + assert len(rec) == 2 + assert rec[0].one == "ten" + assert rec[1].one == "two" + + +def test_repr(): + assert repr(TO()) == "test.mitmproxy.test_optmanager.TO({'one': None, 'two': None})" + assert repr(TO(one='x' * 60)) == """test.mitmproxy.test_optmanager.TO({ + 'one': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', + 'two': None +})""" diff --git a/test/mitmproxy/test_protocol_http2.py b/test/mitmproxy/test_protocol_http2.py index d11570d9..afbffb67 100644 --- a/test/mitmproxy/test_protocol_http2.py +++ b/test/mitmproxy/test_protocol_http2.py @@ -9,9 +9,8 @@ import traceback import h2 -from mitmproxy.flow import options +from mitmproxy import options from mitmproxy.proxy.config import ProxyConfig -from mitmproxy.cmdline import APP_HOST, APP_PORT import netlib from ..netlib import tservers as netlib_tservers @@ -94,7 +93,7 @@ class _Http2TestBase(object): cls.config = ProxyConfig(opts) tmaster = tservers.TestMaster(opts, cls.config) - tmaster.start_app(APP_HOST, APP_PORT) + tmaster.start_app(options.APP_HOST, options.APP_PORT) cls.proxy = tservers.ProxyThread(tmaster) cls.proxy.start() diff --git a/test/mitmproxy/test_proxy.py b/test/mitmproxy/test_proxy.py index 7095d9d2..6e790e28 100644 --- a/test/mitmproxy/test_proxy.py +++ b/test/mitmproxy/test_proxy.py @@ -3,10 +3,10 @@ import mock from OpenSSL import SSL from mitmproxy import cmdline +from mitmproxy import options from mitmproxy.proxy import ProxyConfig from mitmproxy.models.connections import ServerConnection from mitmproxy.proxy.server import DummyServer, ProxyServer, ConnectionHandler -from mitmproxy.flow import options from mitmproxy.proxy import config from netlib.exceptions import TcpDisconnect from pathod import test diff --git a/test/mitmproxy/tservers.py b/test/mitmproxy/tservers.py index 30980e40..f5119166 100644 --- a/test/mitmproxy/tservers.py +++ b/test/mitmproxy/tservers.py @@ -8,9 +8,7 @@ from mitmproxy.proxy.config import ProxyConfig from mitmproxy.proxy.server import ProxyServer import pathod.test import pathod.pathoc -from mitmproxy import flow, controller -from mitmproxy.flow import options -from mitmproxy.cmdline import APP_HOST, APP_PORT +from mitmproxy import flow, controller, options from mitmproxy import builtins testapp = flask.Flask(__name__) @@ -93,7 +91,7 @@ class ProxyTestBase(object): opts = cls.get_options() cls.config = ProxyConfig(opts) tmaster = cls.masterclass(opts, cls.config) - tmaster.start_app(APP_HOST, APP_PORT) + tmaster.start_app(options.APP_HOST, options.APP_PORT) cls.proxy = ProxyThread(tmaster) cls.proxy.start() @@ -160,11 +158,11 @@ class HTTPProxyTest(ProxyTestBase): p = pathod.pathoc.Pathoc( ("127.0.0.1", self.proxy.port), True, fp=None ) - p.connect((APP_HOST, APP_PORT)) + p.connect((options.APP_HOST, options.APP_PORT)) return p.request("get:'%s'" % page) else: p = self.pathoc() - return p.request("get:'http://%s%s'" % (APP_HOST, page)) + return p.request("get:'http://%s%s'" % (options.APP_HOST, page)) class TResolver: -- cgit v1.2.3