Test a difficult-to-trigger IOError, fix cert generation in test suite.

This commit is contained in:
Aldo Cortesi 2013-02-24 11:34:01 +13:00
parent 51de9f9fdf
commit 64285140f9
3 changed files with 11 additions and 2 deletions

View File

@ -71,7 +71,7 @@ flow of requests and responses are completely opaque to the proxy.
## The MITM in mitmproxy
This is where mitmproxy's fundamental trick comes in to play. The MITM in its
This is where mitmproxy's fundamental trick comes into play. The MITM in its
name stands for Man-In-The-Middle - a reference to the process we use to
intercept and interfere with these theoretially opaque data streams. The basic
idea is to pretend to be the server to the client, and pretend to be the client

View File

@ -1,4 +1,5 @@
import socket, time
import mock
from netlib import tcp
from libpathod import pathoc
import tutils, tservers
@ -97,6 +98,14 @@ class TestHTTP(tservers.HTTPProxTest, SanityMixin):
assert p.request("get:'%s':h'Connection'='close'"%response)
tutils.raises("disconnect", p.request, "get:'%s'"%response)
def test_proxy_ioerror(self):
# Tests a difficult-to-trigger condition, where an IOError is raised
# within our read loop.
with mock.patch("libmproxy.proxy.ProxyHandler.read_request") as m:
m.side_effect = IOError("error!")
tutils.raises("empty reply", self.pathod, "304")
class TestHTTPS(tservers.HTTPProxTest, SanityMixin):
ssl = True

View File

@ -63,7 +63,7 @@ class ProxTestBase:
cls.server = libpathod.test.Daemon(ssl=cls.ssl)
pconf = cls.get_proxy_config()
config = proxy.ProxyConfig(
certfile=tutils.test_data.path("data/testkey.pem"),
cacert = tutils.test_data.path("data/serverkey.pem"),
**pconf
)
tmaster = cls.masterclass(cls.tqueue, config)