aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_proxy.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_proxy.py')
-rw-r--r--test/test_proxy.py162
1 files changed, 70 insertions, 92 deletions
diff --git a/test/test_proxy.py b/test/test_proxy.py
index c67e93a0..a5dc666a 100644
--- a/test/test_proxy.py
+++ b/test/test_proxy.py
@@ -2,60 +2,57 @@ import cStringIO, textwrap
from cStringIO import StringIO
import libpry
from libmproxy import proxy, flow
+import tutils
+class Dummy: pass
-class u_read_chunked(libpry.AutoTree):
- def test_all(self):
- s = cStringIO.StringIO("1\r\na\r\n0\r\n")
- libpry.raises(IOError, proxy.read_chunked, s, None)
-
- s = cStringIO.StringIO("1\r\na\r\n0\r\n\r\n")
- assert proxy.read_chunked(s, None) == "a"
- s = cStringIO.StringIO("\r\n")
- libpry.raises(IOError, proxy.read_chunked, s, None)
+def test_read_chunked():
+ s = cStringIO.StringIO("1\r\na\r\n0\r\n")
+ tutils.raises(IOError, proxy.read_chunked, s, None)
- s = cStringIO.StringIO("1\r\nfoo")
- libpry.raises(IOError, proxy.read_chunked, s, None)
+ s = cStringIO.StringIO("1\r\na\r\n0\r\n\r\n")
+ assert proxy.read_chunked(s, None) == "a"
- s = cStringIO.StringIO("foo\r\nfoo")
- libpry.raises(proxy.ProxyError, proxy.read_chunked, s, None)
+ s = cStringIO.StringIO("\r\n")
+ tutils.raises(IOError, proxy.read_chunked, s, None)
+ s = cStringIO.StringIO("1\r\nfoo")
+ tutils.raises(IOError, proxy.read_chunked, s, None)
-class Dummy: pass
+ s = cStringIO.StringIO("foo\r\nfoo")
+ tutils.raises(proxy.ProxyError, proxy.read_chunked, s, None)
-class u_read_http_body(libpry.AutoTree):
- def test_all(self):
+def test_read_http_body():
+ d = Dummy()
+ h = flow.ODict()
+ s = cStringIO.StringIO("testing")
+ assert proxy.read_http_body(s, d, h, False, None) == ""
- d = Dummy()
- h = flow.ODict()
- s = cStringIO.StringIO("testing")
- assert proxy.read_http_body(s, d, h, False, None) == ""
+ h["content-length"] = ["foo"]
+ s = cStringIO.StringIO("testing")
+ tutils.raises(proxy.ProxyError, proxy.read_http_body, s, d, h, False, None)
- h["content-length"] = ["foo"]
- s = cStringIO.StringIO("testing")
- libpry.raises(proxy.ProxyError, proxy.read_http_body, s, d, h, False, None)
+ h["content-length"] = [5]
+ s = cStringIO.StringIO("testing")
+ assert len(proxy.read_http_body(s, d, h, False, None)) == 5
+ s = cStringIO.StringIO("testing")
+ tutils.raises(proxy.ProxyError, proxy.read_http_body, s, d, h, False, 4)
- h["content-length"] = [5]
- s = cStringIO.StringIO("testing")
- assert len(proxy.read_http_body(s, d, h, False, None)) == 5
- s = cStringIO.StringIO("testing")
- libpry.raises(proxy.ProxyError, proxy.read_http_body, s, d, h, False, 4)
+ h = flow.ODict()
+ s = cStringIO.StringIO("testing")
+ assert len(proxy.read_http_body(s, d, h, True, 4)) == 4
+ s = cStringIO.StringIO("testing")
+ assert len(proxy.read_http_body(s, d, h, True, 100)) == 7
- h = flow.ODict()
- s = cStringIO.StringIO("testing")
- assert len(proxy.read_http_body(s, d, h, True, 4)) == 4
- s = cStringIO.StringIO("testing")
- assert len(proxy.read_http_body(s, d, h, True, 100)) == 7
-
-class u_parse_request_line(libpry.AutoTree):
+class TestParseRequestLine:
def test_simple(self):
- libpry.raises(proxy.ProxyError, proxy.parse_request_line, "")
+ tutils.raises(proxy.ProxyError, proxy.parse_request_line, "")
u = "GET ... HTTP/1.1"
- libpry.raises("invalid url", proxy.parse_request_line, u)
+ tutils.raises("invalid url", proxy.parse_request_line, u)
u = "GET http://foo.com:8888/test HTTP/1.1"
m, s, h, po, pa, minor = proxy.parse_request_line(u)
@@ -77,7 +74,7 @@ class u_parse_request_line(libpry.AutoTree):
assert proxy.parse_request_line(u) == ('GET', None, None, None, '/', 1)
-class uFileLike(libpry.AutoTree):
+class TestFileLike:
def test_wrap(self):
s = cStringIO.StringIO("foobar\nfoobar")
s = proxy.FileLike(s)
@@ -88,14 +85,13 @@ class uFileLike(libpry.AutoTree):
assert s.isatty
-
-class uProxyError(libpry.AutoTree):
+class TestProxyError:
def test_simple(self):
p = proxy.ProxyError(111, "msg")
assert repr(p)
-class u_read_headers(libpry.AutoTree):
+class TestReadHeaders:
def test_read_simple(self):
data = """
Header: one
@@ -135,63 +131,45 @@ class u_read_headers(libpry.AutoTree):
assert headers["header"] == ['one\r\n two']
-class u_parse_http_protocol(libpry.AutoTree):
- def test_simple(self):
- assert proxy.parse_http_protocol("HTTP/1.1") == (1, 1)
- assert proxy.parse_http_protocol("HTTP/0.0") == (0, 0)
- assert not proxy.parse_http_protocol("foo/0.0")
-
+def test_parse_http_protocol():
+ assert proxy.parse_http_protocol("HTTP/1.1") == (1, 1)
+ assert proxy.parse_http_protocol("HTTP/0.0") == (0, 0)
+ assert not proxy.parse_http_protocol("foo/0.0")
-class u_parse_init_connect(libpry.AutoTree):
- def test_simple(self):
- assert proxy.parse_init_connect("CONNECT host.com:443 HTTP/1.0")
- assert not proxy.parse_init_connect("bogus")
- assert not proxy.parse_init_connect("GET host.com:443 HTTP/1.0")
- assert not proxy.parse_init_connect("CONNECT host.com443 HTTP/1.0")
- assert not proxy.parse_init_connect("CONNECT host.com:443 foo/1.0")
+def test_parse_init_connect():
+ assert proxy.parse_init_connect("CONNECT host.com:443 HTTP/1.0")
+ assert not proxy.parse_init_connect("bogus")
+ assert not proxy.parse_init_connect("GET host.com:443 HTTP/1.0")
+ assert not proxy.parse_init_connect("CONNECT host.com443 HTTP/1.0")
+ assert not proxy.parse_init_connect("CONNECT host.com:443 foo/1.0")
-class u_parse_init_proxy(libpry.AutoTree):
- def test_simple(self):
- u = "GET http://foo.com:8888/test HTTP/1.1"
- m, s, h, po, pa, major, minor = proxy.parse_init_proxy(u)
- assert m == "GET"
- assert s == "http"
- assert h == "foo.com"
- assert po == 8888
- assert pa == "/test"
- assert major == 1
- assert minor == 1
-
- assert not proxy.parse_init_proxy("invalid")
- assert not proxy.parse_init_proxy("GET invalid HTTP/1.1")
- assert not proxy.parse_init_proxy("GET http://foo.com:8888/test foo/1.1")
+def test_prase_init_proxy():
+ u = "GET http://foo.com:8888/test HTTP/1.1"
+ m, s, h, po, pa, major, minor = proxy.parse_init_proxy(u)
+ assert m == "GET"
+ assert s == "http"
+ assert h == "foo.com"
+ assert po == 8888
+ assert pa == "/test"
+ assert major == 1
+ assert minor == 1
-class u_parse_init_http(libpry.AutoTree):
- def test_simple(self):
- u = "GET /test HTTP/1.1"
- m, u, major, minor = proxy.parse_init_http(u)
- assert m == "GET"
- assert u == "/test"
- assert major == 1
- assert minor == 1
+ assert not proxy.parse_init_proxy("invalid")
+ assert not proxy.parse_init_proxy("GET invalid HTTP/1.1")
+ assert not proxy.parse_init_proxy("GET http://foo.com:8888/test foo/1.1")
- assert not proxy.parse_init_http("invalid")
- assert not proxy.parse_init_http("GET invalid HTTP/1.1")
- assert not proxy.parse_init_http("GET /test foo/1.1")
+def test_parse_init_http():
+ u = "GET /test HTTP/1.1"
+ m, u, major, minor = proxy.parse_init_http(u)
+ assert m == "GET"
+ assert u == "/test"
+ assert major == 1
+ assert minor == 1
+ assert not proxy.parse_init_http("invalid")
+ assert not proxy.parse_init_http("GET invalid HTTP/1.1")
+ assert not proxy.parse_init_http("GET /test foo/1.1")
-tests = [
- u_parse_http_protocol(),
- u_parse_init_connect(),
- u_parse_init_proxy(),
- u_parse_init_http(),
- uProxyError(),
- uFileLike(),
- u_parse_request_line(),
- u_read_chunked(),
- u_read_http_body(),
- u_read_headers()
-]