100% unit test coverage on proxy.py. Hallelujah!

This commit is contained in:
Aldo Cortesi 2013-03-03 12:13:33 +13:00
parent d5876a12ed
commit 2465b8a376
3 changed files with 34 additions and 7 deletions

View File

@ -504,10 +504,7 @@ class ProxyServer(tcp.TCPServer):
def handle_connection(self, request, client_address):
h = ProxyHandler(self.config, request, client_address, self, self.channel, self.server_version)
h.handle()
try:
h.finish()
except tcp.NetLibDisconnect, e:
pass
h.finish()
def handle_shutdown(self):
self.config.certstore.cleanup()
@ -540,7 +537,7 @@ class DummyServer:
def __init__(self, config):
self.config = config
def start_slave(self, klass, channel):
def start_slave(self, *args):
pass
def shutdown(self):

View File

@ -69,7 +69,7 @@ class MockParser:
def __repr__(self):
return "ParseError(%s)"%self.err
class TestProcessProxyOptions:
def p(self, *args):
@ -132,4 +132,18 @@ class TestProcessProxyOptions:
self.assert_err("invalid single-user specification", "--singleuser", "test")
class TestProxyServer:
def test_err(self):
parser = argparse.ArgumentParser()
cmdline.common_options(parser)
opts = parser.parse_args(args=[])
tutils.raises("error starting proxy server", proxy.ProxyServer, opts, 1)
class TestDummyServer:
def test_simple(self):
d = proxy.DummyServer(None)
d.start_slave()
d.shutdown()

View File

@ -277,7 +277,7 @@ class MasterFakeResponse(tservers.TestMaster):
class TestFakeResponse(tservers.HTTPProxTest):
masterclass = MasterFakeResponse
def test_kill(self):
def test_fake(self):
f = self.pathod("200")
assert "header_response" in f.headers.keys()
@ -319,3 +319,19 @@ class TestTransparentResolveError(tservers.TransparentProxTest):
def test_resolve_error(self):
assert self.pathod("304").status_code == 502
class MasterIncomplete(tservers.TestMaster):
def handle_request(self, m):
resp = tutils.tresp()
resp.content = flow.CONTENT_MISSING
m.reply(resp)
class TestIncompleteResponse(tservers.HTTPProxTest):
masterclass = MasterIncomplete
def test_incomplete(self):
assert self.pathod("200").status_code == 502