aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2017-05-25 23:12:42 +0200
committerGitHub <noreply@github.com>2017-05-25 23:12:42 +0200
commit23ce1face0eb75e1ec8b9fde5acc8f31baa09829 (patch)
treeac020f2cc21fec692f3a8ad9f21e44cd37046337
parent8b31f5c324fac1296d0a89fc42f4e86046d28970 (diff)
parentcfed4432a0d8daf335fe0891ac55e520bac580c0 (diff)
downloadmitmproxy-23ce1face0eb75e1ec8b9fde5acc8f31baa09829.tar.gz
mitmproxy-23ce1face0eb75e1ec8b9fde5acc8f31baa09829.tar.bz2
mitmproxy-23ce1face0eb75e1ec8b9fde5acc8f31baa09829.zip
Merge pull request #2351 from Kriechi/fix-warnings
fix more warnings
-rw-r--r--mitmproxy/net/tcp.py2
-rw-r--r--pathod/language/generators.py22
-rw-r--r--pathod/pathod_cmdline.py3
-rw-r--r--test/mitmproxy/net/test_tcp.py2
-rw-r--r--test/pathod/language/test_generators.py12
-rw-r--r--test/pathod/test_test.py40
-rw-r--r--test/pathod/tservers.py4
7 files changed, 32 insertions, 53 deletions
diff --git a/mitmproxy/net/tcp.py b/mitmproxy/net/tcp.py
index cdac4cd5..12cf7337 100644
--- a/mitmproxy/net/tcp.py
+++ b/mitmproxy/net/tcp.py
@@ -502,7 +502,7 @@ class _Connection:
# Cipher List
if cipher_list:
try:
- context.set_cipher_list(cipher_list)
+ context.set_cipher_list(cipher_list.encode())
context.set_tmp_ecdh(OpenSSL.crypto.get_elliptic_curve('prime256v1'))
except SSL.Error as v:
raise exceptions.TlsException("SSL cipher specification error: %s" % str(v))
diff --git a/pathod/language/generators.py b/pathod/language/generators.py
index 93db3014..1961df74 100644
--- a/pathod/language/generators.py
+++ b/pathod/language/generators.py
@@ -1,7 +1,7 @@
+import os
import string
import random
import mmap
-
import sys
DATATYPES = dict(
@@ -74,24 +74,20 @@ class RandomGenerator:
class FileGenerator:
-
def __init__(self, path):
self.path = path
- self.fp = open(path, "rb")
- self.map = mmap.mmap(self.fp.fileno(), 0, access=mmap.ACCESS_READ)
def __len__(self):
- return len(self.map)
+ return os.path.getsize(self.path)
def __getitem__(self, x):
- if isinstance(x, slice):
- return self.map.__getitem__(x)
- # A slice of length 1 returns a byte object (not an integer)
- return self.map.__getitem__(slice(x, x + 1 or self.map.size()))
+ with open(self.path, mode="rb") as f:
+ if isinstance(x, slice):
+ with mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) as mapped:
+ return mapped.__getitem__(x)
+ else:
+ f.seek(x)
+ return f.read(1)
def __repr__(self):
return "<%s" % self.path
-
- def close(self):
- self.map.close()
- self.fp.close()
diff --git a/pathod/pathod_cmdline.py b/pathod/pathod_cmdline.py
index ef1e983f..dee19f4f 100644
--- a/pathod/pathod_cmdline.py
+++ b/pathod/pathod_cmdline.py
@@ -216,7 +216,8 @@ def args_pathod(argv, stdout_=sys.stdout, stderr_=sys.stderr):
anchors = []
for patt, spec in args.anchors:
if os.path.isfile(spec):
- data = open(spec).read()
+ with open(spec) as f:
+ data = f.read()
spec = data
try:
arex = re.compile(patt)
diff --git a/test/mitmproxy/net/test_tcp.py b/test/mitmproxy/net/test_tcp.py
index 234e8afb..adf8701a 100644
--- a/test/mitmproxy/net/test_tcp.py
+++ b/test/mitmproxy/net/test_tcp.py
@@ -391,7 +391,7 @@ class TestSNI(tservers.ServerTestBase):
class TestServerCipherList(tservers.ServerTestBase):
handler = ClientCipherListHandler
ssl = dict(
- cipher_list=b'AES256-GCM-SHA384'
+ cipher_list='AES256-GCM-SHA384'
)
def test_echo(self):
diff --git a/test/pathod/language/test_generators.py b/test/pathod/language/test_generators.py
index 6a67ab72..5e64c726 100644
--- a/test/pathod/language/test_generators.py
+++ b/test/pathod/language/test_generators.py
@@ -14,16 +14,14 @@ def test_randomgenerator():
def test_filegenerator(tmpdir):
f = tmpdir.join("foo")
- f.write(b"x" * 10000)
+ f.write(b"abcdefghijklmnopqrstuvwxyz" * 1000)
g = generators.FileGenerator(str(f))
- assert len(g) == 10000
- assert g[0] == b"x"
- assert g[-1] == b"x"
- assert g[0:5] == b"xxxxx"
+ assert len(g) == 26000
+ assert g[0] == b"a"
+ assert g[2:7] == b"cdefg"
assert len(g[1:10]) == 9
- assert len(g[10000:10001]) == 0
+ assert len(g[26000:26001]) == 0
assert repr(g)
- g.close()
def test_transform_generator():
diff --git a/test/pathod/test_test.py b/test/pathod/test_test.py
index 40f45f53..d51a2c7a 100644
--- a/test/pathod/test_test.py
+++ b/test/pathod/test_test.py
@@ -1,15 +1,9 @@
-import logging
+import os
import requests
import pytest
from pathod import test
-
-from mitmproxy.test import tutils
-
-import requests.packages.urllib3
-
-requests.packages.urllib3.disable_warnings()
-logging.disable(logging.CRITICAL)
+from pathod.pathod import SSLOptions, CA_CERT_NAME
class TestDaemonManual:
@@ -22,29 +16,17 @@ class TestDaemonManual:
with pytest.raises(requests.ConnectionError):
requests.get("http://localhost:%s/p/202:da" % d.port)
- def test_startstop_ssl(self):
- d = test.Daemon(ssl=True)
- rsp = requests.get(
- "https://localhost:%s/p/202:da" %
- d.port,
- verify=False)
- assert rsp.ok
- assert rsp.status_code == 202
- d.shutdown()
- with pytest.raises(requests.ConnectionError):
- requests.get("http://localhost:%s/p/202:da" % d.port)
-
- def test_startstop_ssl_explicit(self):
- ssloptions = dict(
- certfile=tutils.test_data.path("pathod/data/testkey.pem"),
- cacert=tutils.test_data.path("pathod/data/testkey.pem"),
- ssl_after_connect=False
+ @pytest.mark.parametrize('not_after_connect', [True, False])
+ def test_startstop_ssl(self, not_after_connect):
+ ssloptions = SSLOptions(
+ cn=b'localhost',
+ sans=[b'localhost', b'127.0.0.1'],
+ not_after_connect=not_after_connect,
)
- d = test.Daemon(ssl=ssloptions)
+ d = test.Daemon(ssl=True, ssloptions=ssloptions)
rsp = requests.get(
- "https://localhost:%s/p/202:da" %
- d.port,
- verify=False)
+ "https://localhost:%s/p/202:da" % d.port,
+ verify=os.path.expanduser(os.path.join(d.thread.server.ssloptions.confdir, CA_CERT_NAME)))
assert rsp.ok
assert rsp.status_code == 202
d.shutdown()
diff --git a/test/pathod/tservers.py b/test/pathod/tservers.py
index fab09288..a7c92964 100644
--- a/test/pathod/tservers.py
+++ b/test/pathod/tservers.py
@@ -1,3 +1,4 @@
+import os
import tempfile
import re
import shutil
@@ -13,6 +14,7 @@ from pathod import language
from pathod import pathoc
from pathod import pathod
from pathod import test
+from pathod.pathod import CA_CERT_NAME
def treader(bytes):
@@ -72,7 +74,7 @@ class DaemonTests:
self.d.port,
path
),
- verify=False,
+ verify=os.path.join(self.d.thread.server.ssloptions.confdir, CA_CERT_NAME),
params=params
)
return resp