aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_server.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2013-02-24 22:24:21 +1300
committerAldo Cortesi <aldo@nullcube.com>2013-02-24 22:24:21 +1300
commit02578151410fff4b3c018303290e2f843e244a89 (patch)
tree3f76702fd3fa36f5cbda7679e95617e077926d37 /test/test_server.py
parent705559d65e5dc5883395efb85bacbf1459eb243c (diff)
downloadmitmproxy-02578151410fff4b3c018303290e2f843e244a89.tar.gz
mitmproxy-02578151410fff4b3c018303290e2f843e244a89.tar.bz2
mitmproxy-02578151410fff4b3c018303290e2f843e244a89.zip
Significantly simplify server connection handling, and test.
Diffstat (limited to 'test/test_server.py')
-rw-r--r--test/test_server.py28
1 files changed, 22 insertions, 6 deletions
diff --git a/test/test_server.py b/test/test_server.py
index 924b63b7..f93ddbb3 100644
--- a/test/test_server.py
+++ b/test/test_server.py
@@ -85,7 +85,7 @@ class TestHTTP(tservers.HTTPProxTest, SanityMixin):
def test_connection_close(self):
# Add a body, so we have a content-length header, which combined with
# HTTP1.1 means the connection is kept alive.
- response = '%s/p/200:b@1'%self.urlbase
+ response = '%s/p/200:b@1'%self.server.urlbase
# Lets sanity check that the connection does indeed stay open by
# issuing two requests over the same connection
@@ -99,7 +99,7 @@ class TestHTTP(tservers.HTTPProxTest, SanityMixin):
tutils.raises("disconnect", p.request, "get:'%s'"%response)
def test_reconnect(self):
- req = "get:'%s/p/200:b@1:da'"%self.urlbase
+ req = "get:'%s/p/200:b@1:da'"%self.server.urlbase
p = self.pathoc()
assert p.request(req)
# Server has disconnected. Mitmproxy should detect this, and reconnect.
@@ -107,7 +107,7 @@ class TestHTTP(tservers.HTTPProxTest, SanityMixin):
assert p.request(req)
# However, if the server disconnects on our first try, it's an error.
- req = "get:'%s/p/200:b@1:d0'"%self.urlbase
+ req = "get:'%s/p/200:b@1:d0'"%self.server.urlbase
p = self.pathoc()
tutils.raises("server disconnect", p.request, req)
@@ -118,13 +118,29 @@ class TestHTTP(tservers.HTTPProxTest, SanityMixin):
m.side_effect = IOError("error!")
tutils.raises("empty reply", self.pathod, "304")
+ def test_get_connection_switching(self):
+ def switched(l):
+ for i in l:
+ if "switching" in i:
+ return True
+ req = "get:'%s/p/200:b@1'"
+ p = self.pathoc()
+ assert p.request(req%self.server.urlbase)
+ assert p.request(req%self.server2.urlbase)
+ assert switched(self.proxy.log)
+
+ def test_get_connection_err(self):
+ p = self.pathoc()
+ ret = p.request("get:'http://localhost:0'")
+ assert ret[1] == 502
+
class TestHTTPS(tservers.HTTPProxTest, SanityMixin):
ssl = True
clientcerts = True
def test_clientcert(self):
f = self.pathod("304")
- assert self.last_log()["request"]["clientcert"]["keyinfo"]
+ assert self.server.last_log()["request"]["clientcert"]["keyinfo"]
class TestReverse(tservers.ReverseProxTest, SanityMixin):
@@ -211,7 +227,7 @@ class TestKillRequest(tservers.HTTPProxTest):
p = self.pathoc()
tutils.raises("empty reply", self.pathod, "200")
# Nothing should have hit the server
- assert not self.last_log()
+ assert not self.server.last_log()
class MasterKillResponse(tservers.TestMaster):
@@ -225,5 +241,5 @@ class TestKillResponse(tservers.HTTPProxTest):
p = self.pathoc()
tutils.raises("empty reply", self.pathod, "200")
# The server should have seen a request
- assert self.last_log()
+ assert self.server.last_log()