Merge pull request #2351 from Kriechi/fix-warnings

fix more warnings
This commit is contained in:
Maximilian Hils 2017-05-25 23:12:42 +02:00 committed by GitHub
commit 23ce1face0
7 changed files with 32 additions and 53 deletions

View File

@ -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))

View File

@ -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()

View File

@ -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)

View File

@ -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):

View File

@ -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():

View File

@ -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()

View File

@ -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