aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2014-02-08 12:33:59 +1300
committerAldo Cortesi <aldo@nullcube.com>2014-02-08 12:33:59 +1300
commitfe4bab2e6ff2e14397b7563d17a02550b320fc5b (patch)
tree14cf8007357412faa3efb38f45a155c5a4382cd9
parent33b10da57c1fea12d293fab7241597673ed52b30 (diff)
downloadmitmproxy-fe4bab2e6ff2e14397b7563d17a02550b320fc5b.tar.gz
mitmproxy-fe4bab2e6ff2e14397b7563d17a02550b320fc5b.tar.bz2
mitmproxy-fe4bab2e6ff2e14397b7563d17a02550b320fc5b.zip
Cleanup: fix unit tests, simpler app test, remove print statements
-rw-r--r--test/data/confdir/mitmproxy-ca-cert.cer17
-rw-r--r--test/data/confdir/mitmproxy-ca-cert.p12bin0 -> 1689 bytes
-rw-r--r--test/data/confdir/mitmproxy-ca-cert.pem17
-rw-r--r--test/data/confdir/mitmproxy-ca.pem32
-rw-r--r--test/data/serverkey.pem32
-rw-r--r--test/test_app.py50
-rw-r--r--test/test_flow.py2
-rw-r--r--test/test_server.py1
-rw-r--r--test/tservers.py10
9 files changed, 76 insertions, 85 deletions
diff --git a/test/data/confdir/mitmproxy-ca-cert.cer b/test/data/confdir/mitmproxy-ca-cert.cer
new file mode 100644
index 00000000..cc7f8f19
--- /dev/null
+++ b/test/data/confdir/mitmproxy-ca-cert.cer
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICnzCCAgigAwIBAgIGDKiSwuJOMA0GCSqGSIb3DQEBBQUAMCgxEjAQBgNVBAMT
+CW1pdG1wcm94eTESMBAGA1UEChMJbWl0bXByb3h5MB4XDTE0MDIwNzIzMjcwOFoX
+DTE2MDEyODIzMjcwOFowKDESMBAGA1UEAxMJbWl0bXByb3h5MRIwEAYDVQQKEwlt
+aXRtcHJveHkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKsZ+XnBvjCjAJ00
+9M+v41AT91h7v7cF1UG0BpS3y4MOysN88btHM/IWRCllnmY+zx5LTMAEtbnqyOIk
+nkgJ0sU3CFWHRIfwkinssEtMM2mOAFXm0wqffECxwe1p5z84M7nOolzuuw4FtkaK
+G9/UqANdRVs6uOwz+CuyOSY7illTAgMBAAGjgdMwgdAwDwYDVR0TAQH/BAUwAwEB
+/zAUBglghkgBhvhCAQEBAf8EBAMCAgQwewYDVR0lAQH/BHEwbwYIKwYBBQUHAwEG
+CCsGAQUFBwMCBggrBgEFBQcDBAYIKwYBBQUHAwgGCisGAQQBgjcCARUGCisGAQQB
+gjcCARYGCisGAQQBgjcKAwEGCisGAQQBgjcKAwMGCisGAQQBgjcKAwQGCWCGSAGG
++EIEATALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFFKVDIF+w2Ns4KsJx6tJZpILqWwG
+MA0GCSqGSIb3DQEBBQUAA4GBABWYxoYFLgZh/ujz/0jrNsx0pvSNVTU1T669374z
+PhO+ScvzuxVbgI2NQv86aqih35pzakK/DyKaTck85QduDiSiLNw2Yb5UfJvO4C0d
+dPzQMIKNTInFFiLBjbvxx9cuDwAPyYOF247Xj9M6C2x6e/gq1L+GR75wT5288x9h
+rFTJ
+-----END CERTIFICATE-----
diff --git a/test/data/confdir/mitmproxy-ca-cert.p12 b/test/data/confdir/mitmproxy-ca-cert.p12
new file mode 100644
index 00000000..d4cec0d4
--- /dev/null
+++ b/test/data/confdir/mitmproxy-ca-cert.p12
Binary files differ
diff --git a/test/data/confdir/mitmproxy-ca-cert.pem b/test/data/confdir/mitmproxy-ca-cert.pem
new file mode 100644
index 00000000..cc7f8f19
--- /dev/null
+++ b/test/data/confdir/mitmproxy-ca-cert.pem
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICnzCCAgigAwIBAgIGDKiSwuJOMA0GCSqGSIb3DQEBBQUAMCgxEjAQBgNVBAMT
+CW1pdG1wcm94eTESMBAGA1UEChMJbWl0bXByb3h5MB4XDTE0MDIwNzIzMjcwOFoX
+DTE2MDEyODIzMjcwOFowKDESMBAGA1UEAxMJbWl0bXByb3h5MRIwEAYDVQQKEwlt
+aXRtcHJveHkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKsZ+XnBvjCjAJ00
+9M+v41AT91h7v7cF1UG0BpS3y4MOysN88btHM/IWRCllnmY+zx5LTMAEtbnqyOIk
+nkgJ0sU3CFWHRIfwkinssEtMM2mOAFXm0wqffECxwe1p5z84M7nOolzuuw4FtkaK
+G9/UqANdRVs6uOwz+CuyOSY7illTAgMBAAGjgdMwgdAwDwYDVR0TAQH/BAUwAwEB
+/zAUBglghkgBhvhCAQEBAf8EBAMCAgQwewYDVR0lAQH/BHEwbwYIKwYBBQUHAwEG
+CCsGAQUFBwMCBggrBgEFBQcDBAYIKwYBBQUHAwgGCisGAQQBgjcCARUGCisGAQQB
+gjcCARYGCisGAQQBgjcKAwEGCisGAQQBgjcKAwMGCisGAQQBgjcKAwQGCWCGSAGG
++EIEATALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFFKVDIF+w2Ns4KsJx6tJZpILqWwG
+MA0GCSqGSIb3DQEBBQUAA4GBABWYxoYFLgZh/ujz/0jrNsx0pvSNVTU1T669374z
+PhO+ScvzuxVbgI2NQv86aqih35pzakK/DyKaTck85QduDiSiLNw2Yb5UfJvO4C0d
+dPzQMIKNTInFFiLBjbvxx9cuDwAPyYOF247Xj9M6C2x6e/gq1L+GR75wT5288x9h
+rFTJ
+-----END CERTIFICATE-----
diff --git a/test/data/confdir/mitmproxy-ca.pem b/test/data/confdir/mitmproxy-ca.pem
new file mode 100644
index 00000000..2a2343a6
--- /dev/null
+++ b/test/data/confdir/mitmproxy-ca.pem
@@ -0,0 +1,32 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCrGfl5wb4wowCdNPTPr+NQE/dYe7+3BdVBtAaUt8uDDsrDfPG7
+RzPyFkQpZZ5mPs8eS0zABLW56sjiJJ5ICdLFNwhVh0SH8JIp7LBLTDNpjgBV5tMK
+n3xAscHtaec/ODO5zqJc7rsOBbZGihvf1KgDXUVbOrjsM/grsjkmO4pZUwIDAQAB
+AoGAUtjn4Fm8cqZqpLRAmdOruFmCmbiJ0uAjK4Y07Yu1IgdmjJOSJMFMWLsJVBYd
+RZrCBQQm7I8bQyN5E27xqSYAhKz7ymjgHGWlTXENtvfx/XlIIn9DYENKpN1N8Y/5
+BCt0O/F9h2/Z+zGNdV3R2tX3WuSjYlqzzD2RDBIDPe6Fr8kCQQDSLcyqGRXamt0X
+MjPtltJHIjIXHp+++qQDT3n8eaP0maWtAm+75PzWGqOvfg4F2VoWMTGdDEbHbCmH
+Qa6EW0B/AkEA0Gc90xLD+qLqVEbzdveca+yO1lAastqoYzRuM1StZ1Y4pW7F5D23
+MNhV0zV6z7ejZYnnsGvuQLTx51X8Ff59LQJAF1mxQECTNfs4jugr7rxv1ilNaVYk
+p0IPULLWuZ8GARnE10jLAxP4pwzEnK2jfzDbmlWSzoDbqDIzFuzMJ7Y/nwJBAL+s
+dNxRAhbfCA6DQyFEE4XfiG/sNOIS4ZR8gG6Njv7f+jGNdEy7xmUSU71yDoZFK+8T
+qxhD7FlvEp3mI3hHG/ECQQC0x7z/lr5KRsFGqVZOErkc3nOZO+4rjApHSlbuhDLU
+mnUwIi06KyjbN+0XL+6bJl+L5nfL3TIlnyHMJAta2uta
+-----END RSA PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIICnzCCAgigAwIBAgIGDKiSwuJOMA0GCSqGSIb3DQEBBQUAMCgxEjAQBgNVBAMT
+CW1pdG1wcm94eTESMBAGA1UEChMJbWl0bXByb3h5MB4XDTE0MDIwNzIzMjcwOFoX
+DTE2MDEyODIzMjcwOFowKDESMBAGA1UEAxMJbWl0bXByb3h5MRIwEAYDVQQKEwlt
+aXRtcHJveHkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKsZ+XnBvjCjAJ00
+9M+v41AT91h7v7cF1UG0BpS3y4MOysN88btHM/IWRCllnmY+zx5LTMAEtbnqyOIk
+nkgJ0sU3CFWHRIfwkinssEtMM2mOAFXm0wqffECxwe1p5z84M7nOolzuuw4FtkaK
+G9/UqANdRVs6uOwz+CuyOSY7illTAgMBAAGjgdMwgdAwDwYDVR0TAQH/BAUwAwEB
+/zAUBglghkgBhvhCAQEBAf8EBAMCAgQwewYDVR0lAQH/BHEwbwYIKwYBBQUHAwEG
+CCsGAQUFBwMCBggrBgEFBQcDBAYIKwYBBQUHAwgGCisGAQQBgjcCARUGCisGAQQB
+gjcCARYGCisGAQQBgjcKAwEGCisGAQQBgjcKAwMGCisGAQQBgjcKAwQGCWCGSAGG
++EIEATALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFFKVDIF+w2Ns4KsJx6tJZpILqWwG
+MA0GCSqGSIb3DQEBBQUAA4GBABWYxoYFLgZh/ujz/0jrNsx0pvSNVTU1T669374z
+PhO+ScvzuxVbgI2NQv86aqih35pzakK/DyKaTck85QduDiSiLNw2Yb5UfJvO4C0d
+dPzQMIKNTInFFiLBjbvxx9cuDwAPyYOF247Xj9M6C2x6e/gq1L+GR75wT5288x9h
+rFTJ
+-----END CERTIFICATE-----
diff --git a/test/data/serverkey.pem b/test/data/serverkey.pem
deleted file mode 100644
index 289bfa71..00000000
--- a/test/data/serverkey.pem
+++ /dev/null
@@ -1,32 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQC+N+9bv1YC0GKbGdv2wMuuWTGSNwE/Hq5IIxYN1eITsvbD1GgB
-69x++XJd6KTIthnta0KCpCAtbaYbCkhUfxCVv2bP+iQt2AjwMOZlgRZ+RGJ25dBu
-AjAxQmqDJcAdS6MoRHWziomnUNfNogVrfqjpvJor+1iRnrj2q00ab9WYCwIDAQAB
-AoGBAIM7V9l2UcKzPbQ/zO+Z52urgXWcmTGQ2zBNdIOrEcQBbhmAyxi4PnEja3G6
-dSU77PtNSp+S19g/k5+IIoqY9zkGigdaPhRVRKJgBTAzFzMz+WHpQIffDojFKCnL
-gyDnzMRJY8+cnsCqbHRY4hqFiCr8Rq9sCdlynAytdtrnxzqhAkEA9bha6MO+L0JA
-6IEEbVY1vtaUO9Xg5DUDjRxQcfniSJACb/2IvF0tvxAnG7I/S8AavCXqtlDPtYkI
-WOxY5Sd62QJBAMYtKUxGka4XxwCyBK8EUNaN8m9C++mpjoHD1kFri9B1bXm91nCO
-iGWqtqdarwyEc/pAHw5UGzVyBXticPIcs4MCQQCcPvsHsZhYoq91aLyw7bXFQNsH
-ZUvYsOEuNIfuwa+i5ne2UKhG5pU1PgcwNFrNRz140D98aMx7KcS2DqvEIyOZAkBF
-6Yi4L+0Uza6WwDaGx679AfaU6byVIgv0G3JqgdZBJCwK1r3f12im9SKax5MZh2Ci
-2Bwcoe83W5IzhPbzcsyhAkBo8O2U2vig5PQWQ0BUKJrCGHLq//D/ttdLVtmc6eWc
-zqssCF3Unkk3bOq35swSKeAx8WotPPVsALWr87N2hCB+
------END RSA PRIVATE KEY-----
------BEGIN CERTIFICATE-----
-MIICsDCCAhmgAwIBAgIJANwogM9sqMHLMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
-BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
-aWRnaXRzIFB0eSBMdGQwHhcNMTAwMTMxMDEzOTEzWhcNMTEwMTMxMDEzOTEzWjBF
-MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50
-ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
-gQC+N+9bv1YC0GKbGdv2wMuuWTGSNwE/Hq5IIxYN1eITsvbD1GgB69x++XJd6KTI
-thnta0KCpCAtbaYbCkhUfxCVv2bP+iQt2AjwMOZlgRZ+RGJ25dBuAjAxQmqDJcAd
-S6MoRHWziomnUNfNogVrfqjpvJor+1iRnrj2q00ab9WYCwIDAQABo4GnMIGkMB0G
-A1UdDgQWBBTTnBZyw7ZZsb8+/6gvZFIHhVgtDzB1BgNVHSMEbjBsgBTTnBZyw7ZZ
-sb8+/6gvZFIHhVgtD6FJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUt
-U3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJANwogM9s
-qMHLMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEApz428aOar0EBuAib
-I+liefRlK4I3MQQxq3tOeB1dgAIo0ivKtdVJGi1kPg8EO0KMvFfn6IRtssUmFgCp
-JBD+HoDzFxwI1bLMVni+g7OzaNSwL3nQ94lZUdpWMYDxqY4bLUv3goX1TlN9lmpG
-8FiBLYUC0RNTCCRDFGfDr/wUT/M=
------END CERTIFICATE-----
diff --git a/test/test_app.py b/test/test_app.py
index 1046be20..f0eab7cc 100644
--- a/test/test_app.py
+++ b/test/test_app.py
@@ -2,56 +2,18 @@ import mock, socket, os, time
from libmproxy import dump
from netlib import certutils, tcp
from libpathod.pathoc import Pathoc
-import tutils
-
-def get_free_port():
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.bind(("127.0.0.1", 0))
- port = s.getsockname()[1]
- s.close()
- return port
-
-
-class AppTestMixin(object):
- def request(self, spec):
- t_start = time.time()
- while (time.time() - t_start) < 5:
- try:
- p = Pathoc(("127.0.0.1", self.port))
- p.connect() # might fail as the server might not be online yet.
- return p.request(spec)
- except tcp.NetLibError:
- time.sleep(0.01)
- assert False
-
+import tutils, tservers
+class TestApp(tservers.HTTPProxTest):
def test_basic(self):
- assert self.request("get:/").status_code == 200
- assert self.request("get:/").status_code == 200 # Check for connection close
- assert len(self.m.apps.apps) == 0
+ assert self.app("/").status_code == 200
def test_cert(self):
+ path = tutils.test_data.path("data/confdir/") + "mitmproxy-ca-cert."
with tutils.tmpdir() as d:
- # Create Certs
- path = os.path.join(d, "test")
- assert certutils.dummy_ca(path)
- self.m.server.config.cacert = path
-
for ext in ["pem", "p12"]:
- resp = self.request("get:/cert/%s" % ext)
+ resp = self.app("/cert/%s" % ext)
assert resp.status_code == 200
- with open(path + "-cert.%s" % ext, "rb") as f:
+ with open(path + ext, "rb") as f:
assert resp.content == f.read()
-class TestAppExternal(AppTestMixin):
- @classmethod
- def setupAll(cls):
- cls.port = get_free_port()
- o = dump.Options(app=True, app_external=True, app_host="127.0.0.1", app_port=cls.port)
- s = mock.MagicMock()
- cls.m = dump.DumpMaster(s, o, None)
-
-
- @classmethod
- def teardownAll(cls):
- cls.m.shutdown() \ No newline at end of file
diff --git a/test/test_flow.py b/test/test_flow.py
index 65e153ea..fbead1ca 100644
--- a/test/test_flow.py
+++ b/test/test_flow.py
@@ -980,8 +980,6 @@ class TestRequest:
r = tutils.treq()
r.headers = h
result = len(r._assemble_headers())
- print result
- print r._assemble_headers()
assert result == 62
def test_get_content_type(self):
diff --git a/test/test_server.py b/test/test_server.py
index 75649293..2f9e6728 100644
--- a/test/test_server.py
+++ b/test/test_server.py
@@ -153,6 +153,7 @@ class TestHTTP(tservers.HTTPProxTest, CommonMixin, AppMixin):
connection.close()
assert "content-length" in resp.lower()
+
class TestHTTPAuth(tservers.HTTPProxTest):
authenticator = http_auth.BasicProxyAuth(http_auth.PassManSingleUser("test", "test"), "realm")
def test_auth(self):
diff --git a/test/tservers.py b/test/tservers.py
index ee84db57..812e8921 100644
--- a/test/tservers.py
+++ b/test/tservers.py
@@ -51,7 +51,6 @@ class ProxyThread(threading.Thread):
threading.Thread.__init__(self)
self.tmaster = tmaster
self.name = "ProxyThread (%s:%s)" % (tmaster.server.address.host, tmaster.server.address.port)
-
controller.should_exit = False
@property
@@ -85,7 +84,7 @@ class ProxTestBase(object):
pconf = cls.get_proxy_config()
config = proxy.ProxyConfig(
no_upstream_cert = cls.no_upstream_cert,
- cacert = tutils.test_data.path("data/serverkey.pem"),
+ cacert = tutils.test_data.path("data/confdir/mitmproxy-ca.pem"),
authenticator = cls.authenticator,
**pconf
)
@@ -162,9 +161,7 @@ class HTTPProxTest(ProxTestBase):
def app(self, page):
if self.ssl:
p = libpathod.pathoc.Pathoc(("127.0.0.1", self.proxy.port), True)
- print "PRE"
p.connect((APP_HOST, APP_PORT))
- print "POST"
return p.request("get:'/%s'"%page)
else:
p = self.pathoc()
@@ -255,9 +252,8 @@ class ChainProxTest(ProxTestBase):
"""
n = 2
chain_config = [lambda: proxy.ProxyConfig(
- cacert = tutils.test_data.path("data/serverkey.pem")
+ cacert = tutils.test_data.path("data/confdir/mitmproxy-ca.pem"),
)] * n
-
@classmethod
def setupAll(cls):
super(ChainProxTest, cls).setupAll()
@@ -295,4 +291,4 @@ class HTTPChainProxyTest(ChainProxTest):
p.connect(("127.0.0.1", self.server.port))
else:
p.connect()
- return p \ No newline at end of file
+ return p