aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2016-11-25 17:32:23 +0100
committerThomas Kriechbaumer <Kriechi@users.noreply.github.com>2016-11-25 17:32:23 +0100
commit568f40c810f4de60f10bd814608fde8268ef7733 (patch)
treea8a5b68d0a5a2f7ab551c655564390d11096d4cd /test
parent0386740404bf178e7b4a8999eb7ada252e38322b (diff)
downloadmitmproxy-568f40c810f4de60f10bd814608fde8268ef7733.tar.gz
mitmproxy-568f40c810f4de60f10bd814608fde8268ef7733.tar.bz2
mitmproxy-568f40c810f4de60f10bd814608fde8268ef7733.zip
Fix transparent mode initialisation, refactor mitmproxy.platform (#1787)
Diffstat (limited to 'test')
-rw-r--r--test/mitmproxy/test_proxy.py4
-rw-r--r--test/mitmproxy/test_server.py14
-rw-r--r--test/mitmproxy/tservers.py25
3 files changed, 14 insertions, 29 deletions
diff --git a/test/mitmproxy/test_proxy.py b/test/mitmproxy/test_proxy.py
index aa3b8979..177bac1f 100644
--- a/test/mitmproxy/test_proxy.py
+++ b/test/mitmproxy/test_proxy.py
@@ -94,11 +94,11 @@ class TestProcessProxyOptions:
with tutils.tmpdir() as cadir:
self.assert_noerr("--cadir", cadir)
- @mock.patch("mitmproxy.platform.resolver", None)
+ @mock.patch("mitmproxy.platform.original_addr", None)
def test_no_transparent(self):
self.assert_err("transparent mode not supported", "-T")
- @mock.patch("mitmproxy.platform.resolver")
+ @mock.patch("mitmproxy.platform.original_addr")
def test_modes(self, _):
self.assert_noerr("-R", "http://localhost")
self.assert_err("expected one argument", "-R")
diff --git a/test/mitmproxy/test_server.py b/test/mitmproxy/test_server.py
index a7d8cea5..332d6138 100644
--- a/test/mitmproxy/test_server.py
+++ b/test/mitmproxy/test_server.py
@@ -2,6 +2,8 @@ import os
import socket
import time
+import mock
+
from mitmproxy.test import tutils
from mitmproxy import controller
from mitmproxy import options
@@ -878,16 +880,10 @@ class TestKillResponse(tservers.HTTPProxyTest):
assert self.server.last_log()
-class EResolver(tservers.TResolver):
-
- def original_addr(self, sock):
- raise RuntimeError("Could not resolve original destination.")
-
-
class TestTransparentResolveError(tservers.TransparentProxyTest):
- resolver = EResolver
-
- def test_resolve_error(self):
+ @mock.patch("mitmproxy.platform.original_addr")
+ def test_resolve_error(self, original_addr):
+ original_addr.side_effect = RuntimeError
assert self.pathod("304").status_code == 502
diff --git a/test/mitmproxy/tservers.py b/test/mitmproxy/tservers.py
index 060275d0..170a4917 100644
--- a/test/mitmproxy/tservers.py
+++ b/test/mitmproxy/tservers.py
@@ -1,9 +1,9 @@
import os.path
import threading
import tempfile
-import mock
import sys
+import mitmproxy.platform
from mitmproxy.proxy.config import ProxyConfig
from mitmproxy.proxy.server import ProxyServer
from mitmproxy import master
@@ -207,33 +207,22 @@ class HTTPProxyTest(ProxyTestBase):
return p.request("get:'http://%s%s'" % (options.APP_HOST, page))
-class TResolver:
-
- def __init__(self, port):
- self.port = port
-
- def original_addr(self, sock):
- return ("127.0.0.1", self.port)
-
-
class TransparentProxyTest(ProxyTestBase):
ssl = None
- resolver = TResolver
@classmethod
def setup_class(cls):
+ cls._init_transparent_mode = mitmproxy.platform.init_transparent_mode
+ cls._original_addr = mitmproxy.platform.original_addr
+ mitmproxy.platform.init_transparent_mode = lambda: True
+ mitmproxy.platform.original_addr = lambda sock: ("127.0.0.1", cls.server.port)
super().setup_class()
- cls._resolver = mock.patch(
- "mitmproxy.platform.resolver",
- new=lambda: cls.resolver(cls.server.port)
- )
- cls._resolver.start()
-
@classmethod
def teardown_class(cls):
- cls._resolver.stop()
super().teardown_class()
+ mitmproxy.platform.init_transparent_mode = cls._init_transparent_mode
+ mitmproxy.platform.original_addr = cls._original_addr
@classmethod
def get_options(cls):