diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/mitmproxy/addons/test_check_alpn.py | 4 | ||||
| -rw-r--r-- | test/mitmproxy/addons/test_check_ca.py | 2 | ||||
| -rw-r--r-- | test/mitmproxy/addons/test_dumper.py | 2 | ||||
| -rw-r--r-- | test/mitmproxy/addons/test_script.py | 51 | ||||
| -rw-r--r-- | test/mitmproxy/proxy/test_server.py | 12 | ||||
| -rw-r--r-- | test/mitmproxy/script/test_concurrent.py | 2 | ||||
| -rw-r--r-- | test/mitmproxy/test_controller.py | 27 | ||||
| -rw-r--r-- | test/mitmproxy/tservers.py | 17 | 
8 files changed, 49 insertions, 68 deletions
diff --git a/test/mitmproxy/addons/test_check_alpn.py b/test/mitmproxy/addons/test_check_alpn.py index ffaf6cff..2b1d6058 100644 --- a/test/mitmproxy/addons/test_check_alpn.py +++ b/test/mitmproxy/addons/test_check_alpn.py @@ -12,7 +12,7 @@ class TestCheckALPN:          with taddons.context() as tctx:              a = check_alpn.CheckALPN()              tctx.configure(a) -            assert not any(msg in m for l, m in tctx.master.logs) +            assert not tctx.master.has_log(msg)      def test_check_no_alpn(self, disable_alpn):          msg = 'ALPN support missing' @@ -20,4 +20,4 @@ class TestCheckALPN:          with taddons.context() as tctx:              a = check_alpn.CheckALPN()              tctx.configure(a) -            assert any(msg in m for l, m in tctx.master.logs) +            assert tctx.master.has_log(msg) diff --git a/test/mitmproxy/addons/test_check_ca.py b/test/mitmproxy/addons/test_check_ca.py index 859b6d8d..cd34a9be 100644 --- a/test/mitmproxy/addons/test_check_ca.py +++ b/test/mitmproxy/addons/test_check_ca.py @@ -16,4 +16,4 @@ class TestCheckCA:              tctx.master.server.config.certstore.default_ca.has_expired = mock.MagicMock(return_value=expired)              a = check_ca.CheckCA()              tctx.configure(a) -            assert any(msg in m for l, m in tctx.master.logs) is expired +            assert tctx.master.has_log(msg) is expired diff --git a/test/mitmproxy/addons/test_dumper.py b/test/mitmproxy/addons/test_dumper.py index 23299431..fbcc4d16 100644 --- a/test/mitmproxy/addons/test_dumper.py +++ b/test/mitmproxy/addons/test_dumper.py @@ -151,7 +151,7 @@ class TestContentView:          with taddons.context(options=options.Options()) as ctx:              ctx.configure(d, flow_detail=4, verbosity=3)              d.response(tflow.tflow()) -            assert "Content viewer failed" in ctx.master.logs[0][1] +            assert ctx.master.has_log("content viewer failed")  def test_tcp(): diff --git a/test/mitmproxy/addons/test_script.py b/test/mitmproxy/addons/test_script.py index ad3c9a1a..16827488 100644 --- a/test/mitmproxy/addons/test_script.py +++ b/test/mitmproxy/addons/test_script.py @@ -22,14 +22,12 @@ def test_scriptenv():      with taddons.context() as tctx:          with script.scriptenv("path", []):              raise SystemExit -        assert tctx.master.logs[0][0] == "error" -        assert "exited" in tctx.master.logs[0][1] +        assert tctx.master.has_log("exited", "error")          tctx.master.clear()          with script.scriptenv("path", []):              raise ValueError("fooo") -        assert tctx.master.logs[0][0] == "error" -        assert "foo" in tctx.master.logs[0][1] +        assert tctx.master.has_log("fooo", "error")  class Called: @@ -147,11 +145,11 @@ class TestScript:              sc.start(tctx.options)              f = tflow.tflow(resp=True)              sc.request(f) -            assert tctx.master.logs[0][0] == "error" -            assert len(tctx.master.logs[0][1].splitlines()) == 6 -            assert re.search(r'addonscripts[\\/]error.py", line \d+, in request', tctx.master.logs[0][1]) -            assert re.search(r'addonscripts[\\/]error.py", line \d+, in mkerr', tctx.master.logs[0][1]) -            assert tctx.master.logs[0][1].endswith("ValueError: Error!\n") +            assert tctx.master.logs[0].level == "error" +            assert len(tctx.master.logs[0].msg.splitlines()) == 6 +            assert re.search(r'addonscripts[\\/]error.py", line \d+, in request', tctx.master.logs[0].msg) +            assert re.search(r'addonscripts[\\/]error.py", line \d+, in mkerr', tctx.master.logs[0].msg) +            assert tctx.master.logs[0].msg.endswith("ValueError: Error!\n")      def test_addon(self):          with taddons.context() as tctx: @@ -256,19 +254,19 @@ class TestScriptLoader:                      "%s %s" % (rec, "c"),                  ]              ) -            debug = [(i[0], i[1]) for i in tctx.master.logs if i[0] == "debug"] +            debug = [i.msg for i in tctx.master.logs if i.level == "debug"]              assert debug == [ -                ('debug', 'a start'), -                ('debug', 'a configure'), -                ('debug', 'a running'), +                'a start', +                'a configure', +                'a running', -                ('debug', 'b start'), -                ('debug', 'b configure'), -                ('debug', 'b running'), +                'b start', +                'b configure', +                'b running', -                ('debug', 'c start'), -                ('debug', 'c configure'), -                ('debug', 'c running'), +                'c start', +                'c configure', +                'c running',              ]              tctx.master.logs = []              tctx.configure( @@ -279,8 +277,7 @@ class TestScriptLoader:                      "%s %s" % (rec, "b"),                  ]              ) -            debug = [(i[0], i[1]) for i in tctx.master.logs if i[0] == "debug"] -            # No events, only order has changed +            debug = [i.msg for i in tctx.master.logs if i.level == "debug"]              assert debug == []              tctx.master.logs = [] @@ -291,11 +288,11 @@ class TestScriptLoader:                      "%s %s" % (rec, "a"),                  ]              ) -            debug = [(i[0], i[1]) for i in tctx.master.logs if i[0] == "debug"] +            debug = [i.msg for i in tctx.master.logs if i.level == "debug"]              assert debug == [ -                ('debug', 'c done'), -                ('debug', 'b done'), -                ('debug', 'x start'), -                ('debug', 'x configure'), -                ('debug', 'x running'), +                'c done', +                'b done', +                'x start', +                'x configure', +                'x running',              ] diff --git a/test/mitmproxy/proxy/test_server.py b/test/mitmproxy/proxy/test_server.py index 16efe415..ea7b69a3 100644 --- a/test/mitmproxy/proxy/test_server.py +++ b/test/mitmproxy/proxy/test_server.py @@ -250,17 +250,12 @@ class TestHTTP(tservers.HTTPProxyTest, CommonMixin):              assert p.request(req)      def test_get_connection_switching(self): -        def switched(l): -            for i in l: -                if "serverdisconnect" in i: -                    return True -          req = "get:'%s/p/200:b@1'"          p = self.pathoc()          with p.connect():              assert p.request(req % self.server.urlbase)              assert p.request(req % self.server2.urlbase) -        assert switched(self.proxy.tlog) +        assert self.proxy.tmaster.has_log("serverdisconnect")      def test_blank_leading_line(self):          p = self.pathoc() @@ -602,7 +597,7 @@ class TestHttps2Http(tservers.ReverseProxyTest):          p = self.pathoc(ssl=True, sni="example.com")          with p.connect():              assert p.request("get:'/p/200'").status_code == 200 -            assert all("Error in handle_sni" not in msg for msg in self.proxy.tlog) +            assert not self.proxy.tmaster.has_log("error in handle_sni")      def test_http(self):          p = self.pathoc(ssl=False) @@ -877,8 +872,7 @@ class TestServerConnect(tservers.HTTPProxyTest):      def test_unnecessary_serverconnect(self):          """A replayed/fake response with no upstream_cert should not connect to an upstream server"""          assert self.pathod("200").status_code == 200 -        for msg in self.proxy.tmaster.tlog: -            assert "serverconnect" not in msg +        assert not self.proxy.tmaster.has_log("serverconnect")  class MasterKillRequest(tservers.TestMaster): diff --git a/test/mitmproxy/script/test_concurrent.py b/test/mitmproxy/script/test_concurrent.py index 206482e2..0e397b8f 100644 --- a/test/mitmproxy/script/test_concurrent.py +++ b/test/mitmproxy/script/test_concurrent.py @@ -43,7 +43,7 @@ class TestConcurrent(tservers.MasterTest):                  )              )              sc.start(tctx.options) -            assert "decorator not supported" in tctx.master.logs[0][1] +            assert tctx.master.has_log("decorator not supported")      def test_concurrent_class(self):              with taddons.context() as tctx: diff --git a/test/mitmproxy/test_controller.py b/test/mitmproxy/test_controller.py index 6acd3e54..5f0e2d64 100644 --- a/test/mitmproxy/test_controller.py +++ b/test/mitmproxy/test_controller.py @@ -7,6 +7,7 @@ from mitmproxy.exceptions import Kill, ControlException  from mitmproxy import controller  from mitmproxy import master  from mitmproxy import proxy +from mitmproxy.test import taddons  class TMsg: @@ -15,22 +16,18 @@ class TMsg:  class TestMaster:      def test_simple(self): -        class DummyMaster(master.Master): -            @controller.handler +        class tAddon:              def log(self, _): -                m.should_exit.set() - -            def tick(self, timeout): -                # Speed up test -                super().tick(0) - -        m = DummyMaster(None, proxy.DummyServer(None)) -        assert not m.should_exit.is_set() -        msg = TMsg() -        msg.reply = controller.DummyReply() -        m.event_queue.put(("log", msg)) -        m.run() -        assert m.should_exit.is_set() +                ctx.master.should_exit.set() + +        with taddons.context() as ctx: +            ctx.master.addons.add(tAddon()) +            assert not ctx.master.should_exit.is_set() +            msg = TMsg() +            msg.reply = controller.DummyReply() +            ctx.master.event_queue.put(("log", msg)) +            ctx.master.run() +            assert ctx.master.should_exit.is_set()      def test_server_simple(self):          m = master.Master(None, proxy.DummyServer(None)) diff --git a/test/mitmproxy/tservers.py b/test/mitmproxy/tservers.py index 0f34e37e..9568976e 100644 --- a/test/mitmproxy/tservers.py +++ b/test/mitmproxy/tservers.py @@ -6,7 +6,6 @@ import sys  import mitmproxy.platform  from mitmproxy.proxy.config import ProxyConfig  from mitmproxy.proxy.server import ProxyServer -from mitmproxy import master  from mitmproxy import controller  from mitmproxy import options  from mitmproxy import exceptions @@ -17,6 +16,7 @@ import pathod.pathoc  from mitmproxy.test import tflow  from mitmproxy.test import tutils +from mitmproxy.test import taddons  class MasterTest: @@ -68,11 +68,11 @@ class TestState:      #         self.flows.append(f) -class TestMaster(master.Master): +class TestMaster(taddons.RecordingMaster):      def __init__(self, opts, config):          s = ProxyServer(config) -        master.Master.__init__(self, opts, s) +        super().__init__(opts, s)      def clear_addons(self, addons):          self.addons.clear() @@ -82,16 +82,9 @@ class TestMaster(master.Master):          self.addons.configure_all(self.options, self.options.keys())          self.addons.trigger("running") -    def clear_log(self): -        self.tlog = [] -      def reset(self, addons):          self.clear_addons(addons) -        self.clear_log() - -    @controller.handler -    def log(self, e): -        self.tlog.append(e.msg) +        self.clear()  class ProxyThread(threading.Thread): @@ -111,7 +104,7 @@ class ProxyThread(threading.Thread):      @property      def tlog(self): -        return self.tmaster.tlog +        return self.tmaster.logs      def run(self):          self.tmaster.run()  | 
