diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/tservers.py | 30 | 
1 files changed, 17 insertions, 13 deletions
| diff --git a/test/tservers.py b/test/tservers.py index 146dd13d..597ad4ee 100644 --- a/test/tservers.py +++ b/test/tservers.py @@ -2,6 +2,8 @@ import os.path  import threading, Queue  import shutil, tempfile  import flask +import mock +  from libmproxy.proxy.config import ProxyConfig  from libmproxy.proxy.server import ProxyServer  from libmproxy.proxy.primitives import TransparentUpstreamServerResolver @@ -88,28 +90,25 @@ class ProxTestBase(object):          cls.server2 = libpathod.test.Daemon(ssl=cls.ssl, ssloptions=cls.ssloptions)          pconf = cls.get_proxy_config()          cls.confdir = os.path.join(tempfile.gettempdir(), "mitmproxy") -        config = ProxyConfig( +        cls.config = ProxyConfig(              no_upstream_cert = cls.no_upstream_cert,              confdir = cls.confdir,              authenticator = cls.authenticator,              certforward = cls.certforward,              **pconf          ) -        tmaster = cls.masterclass(config) +        tmaster = cls.masterclass(cls.config)          tmaster.start_app(APP_HOST, APP_PORT, cls.externalapp)          cls.proxy = ProxyThread(tmaster)          cls.proxy.start() -    @classmethod -    def tearDownAll(cls): -        shutil.rmtree(cls.confdir) -      @property      def master(cls):          return cls.proxy.tmaster      @classmethod      def teardownAll(cls): +        shutil.rmtree(cls.confdir)          cls.proxy.shutdown()          cls.server.shutdown()          cls.server2.shutdown() @@ -189,16 +188,21 @@ class TResolver:  class TransparentProxTest(ProxTestBase):      ssl = None      resolver = TResolver +      @classmethod -    def get_proxy_config(cls): -        d = ProxTestBase.get_proxy_config() +    @mock.patch("libmproxy.platform.resolver") +    def setupAll(cls, _): +        super(TransparentProxTest, cls).setupAll()          if cls.ssl:              ports = [cls.server.port, cls.server2.port]          else:              ports = [] -        d["get_upstream_server"] = TransparentUpstreamServerResolver(cls.resolver(cls.server.port), ports) -        d["http_form_in"] = "relative" -        d["http_form_out"] = "relative" +        cls.config.get_upstream_server = TransparentUpstreamServerResolver(cls.resolver(cls.server.port), ports) + +    @classmethod +    def get_proxy_config(cls): +        d = ProxTestBase.get_proxy_config() +        d["mode"] = "transparent"          return d      def pathod(self, spec, sni=None): @@ -227,7 +231,7 @@ class ReverseProxTest(ProxTestBase):      @classmethod      def get_proxy_config(cls):          d = ProxTestBase.get_proxy_config() -        d["get_upstream_server"] = lambda c: ( +        d["upstream_server"] = (              True if cls.ssl else False,              True if cls.ssl else False,              "127.0.0.1", @@ -264,7 +268,7 @@ class ChainProxTest(ProxTestBase):      """      n = 2      chain_config = [lambda port: ProxyConfig( -        get_upstream_server = lambda c: (False, False, "127.0.0.1", port), +        upstream_server= (False, False, "127.0.0.1", port),          http_form_in = "absolute",          http_form_out = "absolute"      )] * n | 
