Cleanup: fix unit tests, simpler app test, remove print statements
This commit is contained in:
parent
33b10da57c
commit
fe4bab2e6f
|
@ -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-----
|
Binary file not shown.
|
@ -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-----
|
|
@ -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-----
|
|
@ -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-----
|
|
@ -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()
|
|
@ -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):
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue