Merge pull request #85458 from rnhmjoj/mitmproxy

mitmproxy: 4.0.4 -> 5.1.1
This commit is contained in:
Michele Guerini Rocco 2020-04-19 12:12:41 +02:00 committed by GitHub
commit d4d6d26588
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 39 additions and 70 deletions

View File

@ -0,0 +1,26 @@
{ stdenv, buildPythonPackage, fetchFromGitHub, requests }:
buildPythonPackage rec {
pname = "publicsuffix2";
version = "2.20191221";
# Tests are missing in the sdist
# See: https://github.com/nexB/python-publicsuffix2/issues/12
src = fetchFromGitHub {
owner = "nexB";
repo = "python-publicsuffix2";
rev = "release-2.2019-12-21";
sha256 = "1dkvfvl0izq9hqzilnw8ipkbgjs9xyad9p21i3864hzinbh0wp9r";
};
nativeBuildInputs = [ requests ];
meta = with stdenv.lib; {
description = ''
Get a public suffix for a domain name using the Public Suffix
List. Forked from and using the same API as the publicsuffix package.
'';
homepage = "https://pypi.python.org/pypi/publicsuffix2/";
license = licenses.mpl20;
};
}

View File

@ -4,47 +4,15 @@ with python3Packages;
buildPythonPackage rec {
pname = "mitmproxy";
version = "4.0.4";
version = "5.1.1";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "14i9dkafvyl15rq2qa8xldscn5lmkk2g52kbi2hl63nzx9yibx6r";
sha256 = "1lirlckpvd3c6s6q3p32w4k4yfna5mlgr1x9g39lhzzq0sdiz3lk";
};
patches = [
(fetchpatch {
# Tests failed due to expired test certificates,
# https://github.com/mitmproxy/mitmproxy/issues/3316
# TODO: remove on next update
name = "test-certificates.patch";
url = "https://github.com/mitmproxy/mitmproxy/commit/1b6a8d6acd3d70f9b9627ad4ae9def08103f8250.patch";
sha256 = "03y79c25yir7d8xj79czdc81y3irqq1i3ks9ca0mv1az8b7xsvfv";
})
(fetchpatch {
# 0.13 <= wsproto < 0.14 patch
# https://github.com/mitmproxy/mitmproxy/issues/3459
# TODO: remove on next update
name = "wsproto-0.13.patch";
url = "https://github.com/mitmproxy/mitmproxy/commit/70777a1b6ed64af9cafcdef223a8a260ecc96864.patch";
sha256 = "1ddxdr7js510kzyq3gyks4k5k1n8zb1i9amxw7wzmi1dcg8kqw9a";
# We strip these bounds anyway
excludes = [ "setup.py" ];
})
(fetchpatch {
# Fix for newer pytest disallowing calling fixtures
# https://github.com/mitmproxy/mitmproxy/issues/3403
# TODO: remove on next update
name = "dont-call-fixtures.patch";
url = "https://github.com/mitmproxy/mitmproxy/commit/ce28721458c8cc71de86513a5110676e9763041b.patch";
sha256 = "05pljr28lx7l1xgswqr9sz8dnhvc7npzh8xg2p9hignf159kd54d";
# Irrelevant in nixpkgs
excludes = [ "setup.py" "setup.cfg" "release/docker/*" ];
})
./pytest5.patch
];
postPatch = ''
# remove dependency constraints
sed 's/>=\([0-9]\.\?\)\+\( \?, \?<\([0-9]\.\?\)\+\)\?//' -i setup.py
@ -61,17 +29,21 @@ buildPythonPackage rec {
'';
propagatedBuildInputs = [
blinker click certifi cryptography
h2 hyperframe kaitaistruct passlib
pyasn1 pyopenssl pyparsing pyperclip
ruamel_yaml tornado urwid brotlipy
sortedcontainers ldap3 wsproto setuptools
blinker brotli certifi cffi
click cryptography flask h11
h2 hpack hyperframe itsdangerous
jinja2 kaitaistruct ldap3 markupsafe
passlib protobuf publicsuffix2 pyasn1
pycparser pyopenssl pyparsing pyperclip
ruamel_yaml setuptools six sortedcontainers
tornado urwid werkzeug wsproto zstandard
];
checkInputs = [
beautifulsoup4 flask pytest
requests glibcLocales
asynctest parver pytest-asyncio
hypothesis
];
meta = with stdenv.lib; {

View File

@ -1,31 +0,0 @@
diff --git a/test/mitmproxy/net/test_tls.py b/test/mitmproxy/net/test_tls.py
index 489bf89f..c78472e3 100644
--- a/test/mitmproxy/net/test_tls.py
+++ b/test/mitmproxy/net/test_tls.py
@@ -87,14 +87,16 @@ def test_get_client_hello():
rfile = io.BufferedReader(io.BytesIO(
FULL_CLIENT_HELLO_NO_EXTENSIONS[:30]
))
- with pytest.raises(exceptions.TlsProtocolException, message="Unexpected EOF"):
+ with pytest.raises(exceptions.TlsProtocolException):
tls.get_client_hello(rfile)
+ pytest.fail("Unexpected EOF")
rfile = io.BufferedReader(io.BytesIO(
b"GET /"
))
- with pytest.raises(exceptions.TlsProtocolException, message="Expected TLS record"):
+ with pytest.raises(exceptions.TlsProtocolException):
tls.get_client_hello(rfile)
+ pytest.fail("Expected TLS record")
class TestClientHello:
@@ -153,5 +155,6 @@ class TestClientHello:
b"\x01\x00\x00\x03" + # handshake header
b"foo"
))
- with pytest.raises(exceptions.TlsProtocolException, message='Cannot parse Client Hello'):
+ with pytest.raises(exceptions.TlsProtocolException):
tls.ClientHello.from_file(rfile)
+ pytest.fail('Cannot parse Client Hello')

View File

@ -5038,6 +5038,8 @@ in {
publicsuffix = callPackage ../development/python-modules/publicsuffix {};
publicsuffix2 = callPackage ../development/python-modules/publicsuffix2 {};
py = callPackage ../development/python-modules/py { };
pyacoustid = callPackage ../development/python-modules/pyacoustid { };