aboutsummaryrefslogtreecommitdiffstats
path: root/test/tservers.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/tservers.py')
-rw-r--r--test/tservers.py49
1 files changed, 32 insertions, 17 deletions
diff --git a/test/tservers.py b/test/tservers.py
index bcda0295..dc14fb37 100644
--- a/test/tservers.py
+++ b/test/tservers.py
@@ -1,23 +1,28 @@
import os.path
-import threading, Queue
-import shutil, tempfile
+import threading
+import Queue
+import shutil
+import tempfile
import flask
import mock
from libmproxy.proxy.config import ProxyConfig
from libmproxy.proxy.server import ProxyServer
from libmproxy.proxy.primitives import TransparentProxyMode
-import libpathod.test, libpathod.pathoc
+import libpathod.test
+import libpathod.pathoc
from libmproxy import flow, controller
from libmproxy.cmdline import APP_HOST, APP_PORT
import tutils
testapp = flask.Flask(__name__)
+
@testapp.route("/")
def hello():
return "testapp"
+
@testapp.route("/error")
def error():
raise ValueError("An exception...")
@@ -57,7 +62,8 @@ class ProxyThread(threading.Thread):
def __init__(self, tmaster):
threading.Thread.__init__(self)
self.tmaster = tmaster
- self.name = "ProxyThread (%s:%s)" % (tmaster.server.address.host, tmaster.server.address.port)
+ self.name = "ProxyThread (%s:%s)" % (
+ tmaster.server.address.host, tmaster.server.address.port)
controller.should_exit = False
@property
@@ -87,8 +93,12 @@ class ProxTestBase(object):
@classmethod
def setupAll(cls):
- cls.server = libpathod.test.Daemon(ssl=cls.ssl, ssloptions=cls.ssloptions)
- cls.server2 = libpathod.test.Daemon(ssl=cls.ssl, ssloptions=cls.ssloptions)
+ cls.server = libpathod.test.Daemon(
+ ssl=cls.ssl,
+ ssloptions=cls.ssloptions)
+ cls.server2 = libpathod.test.Daemon(
+ ssl=cls.ssl,
+ ssloptions=cls.ssloptions)
cls.config = ProxyConfig(**cls.get_proxy_config())
@@ -151,9 +161,9 @@ class HTTPProxTest(ProxTestBase):
p = self.pathoc(sni=sni)
spec = spec.encode("string_escape")
if self.ssl:
- q = "get:'/p/%s'"%spec
+ q = "get:'/p/%s'" % spec
else:
- q = "get:'%s/p/%s'"%(self.server.urlbase, spec)
+ q = "get:'%s/p/%s'" % (self.server.urlbase, spec)
return p.request(q)
def app(self, page):
@@ -162,10 +172,10 @@ class HTTPProxTest(ProxTestBase):
("127.0.0.1", self.proxy.port), True, fp=None
)
p.connect((APP_HOST, APP_PORT))
- return p.request("get:'%s'"%page)
+ 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'" % (APP_HOST, page))
class TResolver:
@@ -188,7 +198,10 @@ class TransparentProxTest(ProxTestBase):
ports = [cls.server.port, cls.server2.port]
else:
ports = []
- cls.config.mode = TransparentProxyMode(cls.resolver(cls.server.port), ports)
+ cls.config.mode = TransparentProxyMode(
+ cls.resolver(
+ cls.server.port),
+ ports)
@classmethod
def get_proxy_config(cls):
@@ -202,10 +215,10 @@ class TransparentProxTest(ProxTestBase):
"""
if self.ssl:
p = self.pathoc(sni=sni)
- q = "get:'/p/%s'"%spec
+ q = "get:'/p/%s'" % spec
else:
p = self.pathoc()
- q = "get:'/p/%s'"%spec
+ q = "get:'/p/%s'" % spec
return p.request(q)
def pathoc(self, sni=None):
@@ -221,6 +234,7 @@ class TransparentProxTest(ProxTestBase):
class ReverseProxTest(ProxTestBase):
ssl = None
+
@classmethod
def get_proxy_config(cls):
d = ProxTestBase.get_proxy_config()
@@ -249,10 +263,10 @@ class ReverseProxTest(ProxTestBase):
"""
if self.ssl:
p = self.pathoc(sni=sni)
- q = "get:'/p/%s'"%spec
+ q = "get:'/p/%s'" % spec
else:
p = self.pathoc()
- q = "get:'/p/%s'"%spec
+ q = "get:'/p/%s'" % spec
return p.request(q)
@@ -278,8 +292,8 @@ class ChainProxTest(ProxTestBase):
cls.chain.insert(0, proxy)
# Patch the orginal proxy to upstream mode
- cls.config = cls.proxy.tmaster.config = cls.proxy.tmaster.server.config = ProxyConfig(**cls.get_proxy_config())
-
+ cls.config = cls.proxy.tmaster.config = cls.proxy.tmaster.server.config = ProxyConfig(
+ **cls.get_proxy_config())
@classmethod
def teardownAll(cls):
@@ -303,5 +317,6 @@ class ChainProxTest(ProxTestBase):
)
return d
+
class HTTPUpstreamProxTest(ChainProxTest, HTTPProxTest):
pass