aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mitmproxy/proxy/protocol/base.py10
-rw-r--r--mitmproxy/proxy/root_context.py7
-rw-r--r--test/mitmproxy/net/test_check.py1
-rw-r--r--test/mitmproxy/net/test_socks.py7
-rw-r--r--test/mitmproxy/test_flow.py13
-rw-r--r--test/mitmproxy/types/__init__.py0
-rw-r--r--test/mitmproxy/types/test_basethread.py7
-rw-r--r--test/mitmproxy/types/test_bidi.py (renamed from test/mitmproxy/test_types_bidi.py)0
-rw-r--r--test/mitmproxy/types/test_multidict.py (renamed from test/mitmproxy/test_types_multidict.py)0
-rw-r--r--test/mitmproxy/types/test_serializable.py (renamed from test/mitmproxy/test_types_serializable.py)0
-rw-r--r--tox.ini5
11 files changed, 30 insertions, 20 deletions
diff --git a/mitmproxy/proxy/protocol/base.py b/mitmproxy/proxy/protocol/base.py
index c535a1a3..93619171 100644
--- a/mitmproxy/proxy/protocol/base.py
+++ b/mitmproxy/proxy/protocol/base.py
@@ -74,16 +74,6 @@ class Layer(_LayerCodeCompletion):
"""
return getattr(self.ctx, name)
- @property
- def layers(self):
- """
- List of all layers, including the current layer (``[self, self.ctx, self.ctx.ctx, ...]``)
- """
- return [self] + self.ctx.layers
-
- def __repr__(self):
- return type(self).__name__
-
class ServerConnectionMixin:
diff --git a/mitmproxy/proxy/root_context.py b/mitmproxy/proxy/root_context.py
index f38f2a8c..180fc9ca 100644
--- a/mitmproxy/proxy/root_context.py
+++ b/mitmproxy/proxy/root_context.py
@@ -110,10 +110,3 @@ class RootContext:
full_msg.append(" -> " + i)
full_msg = "\n".join(full_msg)
self.channel.tell("log", log.LogEntry(full_msg, level))
-
- @property
- def layers(self):
- return []
-
- def __repr__(self):
- return "RootContext"
diff --git a/test/mitmproxy/net/test_check.py b/test/mitmproxy/net/test_check.py
index 36dca168..9dbc02e0 100644
--- a/test/mitmproxy/net/test_check.py
+++ b/test/mitmproxy/net/test_check.py
@@ -5,6 +5,7 @@ from mitmproxy.net import check
def test_is_valid_host():
assert not check.is_valid_host(b"")
+ assert not check.is_valid_host(b"xn--ke.ws")
assert check.is_valid_host(b"one.two")
assert not check.is_valid_host(b"one" * 255)
assert check.is_valid_host(b"one.two.")
diff --git a/test/mitmproxy/net/test_socks.py b/test/mitmproxy/net/test_socks.py
index 9b746b92..c1bd0603 100644
--- a/test/mitmproxy/net/test_socks.py
+++ b/test/mitmproxy/net/test_socks.py
@@ -179,6 +179,13 @@ def test_message_ipv6():
assert msg.addr.host == ipv6_addr
+def test_message_invalid_host():
+ raw = tutils.treader(b"\xEE\x01\x00\x03\x0bexample@com\xDE\xAD\xBE\xEF")
+ with pytest.raises(socks.SocksError) as exc_info:
+ socks.Message.from_file(raw)
+ assert exc_info.match("Invalid hostname: b'example@com'")
+
+
def test_message_invalid_rsv():
raw = tutils.treader(b"\x05\x01\xFF\x01\x7f\x00\x00\x01\xDE\xAD\xBE\xEF")
with pytest.raises(socks.SocksError):
diff --git a/test/mitmproxy/test_flow.py b/test/mitmproxy/test_flow.py
index 102a714d..f546d61b 100644
--- a/test/mitmproxy/test_flow.py
+++ b/test/mitmproxy/test_flow.py
@@ -251,8 +251,19 @@ class TestSerialize:
sio.write(b"bogus")
sio.seek(0)
r = mitmproxy.io.FlowReader(sio)
- with pytest.raises(FlowReadException):
+ with pytest.raises(FlowReadException) as exc_info:
list(r.stream())
+ assert exc_info.match('Invalid data format')
+
+ sio = io.BytesIO()
+ f = tflow.tdummyflow()
+ w = mitmproxy.io.FlowWriter(sio)
+ w.add(f)
+ sio.seek(0)
+ r = mitmproxy.io.FlowReader(sio)
+ with pytest.raises(FlowReadException) as exc_info:
+ list(r.stream())
+ assert exc_info.match('Unknown flow type')
f = FlowReadException("foo")
assert str(f) == "foo"
diff --git a/test/mitmproxy/types/__init__.py b/test/mitmproxy/types/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/mitmproxy/types/__init__.py
diff --git a/test/mitmproxy/types/test_basethread.py b/test/mitmproxy/types/test_basethread.py
new file mode 100644
index 00000000..a91588eb
--- /dev/null
+++ b/test/mitmproxy/types/test_basethread.py
@@ -0,0 +1,7 @@
+import re
+from mitmproxy.types import basethread
+
+
+def test_basethread():
+ t = basethread.BaseThread('foobar')
+ assert re.match('foobar - age: \d+s', t._threadinfo())
diff --git a/test/mitmproxy/test_types_bidi.py b/test/mitmproxy/types/test_bidi.py
index e3a259fd..e3a259fd 100644
--- a/test/mitmproxy/test_types_bidi.py
+++ b/test/mitmproxy/types/test_bidi.py
diff --git a/test/mitmproxy/test_types_multidict.py b/test/mitmproxy/types/test_multidict.py
index 9b13c5cd..9b13c5cd 100644
--- a/test/mitmproxy/test_types_multidict.py
+++ b/test/mitmproxy/types/test_multidict.py
diff --git a/test/mitmproxy/test_types_serializable.py b/test/mitmproxy/types/test_serializable.py
index dd4a3778..dd4a3778 100644
--- a/test/mitmproxy/test_types_serializable.py
+++ b/test/mitmproxy/types/test_serializable.py
diff --git a/tox.ini b/tox.ini
index fafa7220..a91f5d1a 100644
--- a/tox.ini
+++ b/tox.ini
@@ -14,16 +14,17 @@ commands =
pytest --timeout 60 --cov-report='' --cov=mitmproxy --cov=pathod \
--full-cov=mitmproxy/addons/ \
--full-cov=mitmproxy/contentviews/ --no-full-cov=mitmproxy/contentviews/__init__.py --no-full-cov=mitmproxy/contentviews/protobuf.py --no-full-cov=mitmproxy/contentviews/wbxml.py --no-full-cov=mitmproxy/contentviews/xml_html.py \
- --full-cov=mitmproxy/net/ --no-full-cov=mitmproxy/net/check.py --no-full-cov=mitmproxy/net/socks.py --no-full-cov=mitmproxy/net/tcp.py --no-full-cov=mitmproxy/net/http/cookies.py --no-full-cov=mitmproxy/net/http/encoding.py --no-full-cov=mitmproxy/net/http/message.py --no-full-cov=mitmproxy/net/http/request.py --no-full-cov=mitmproxy/net/http/response.py --no-full-cov=mitmproxy/net/http/url.py \
+ --full-cov=mitmproxy/net/ --no-full-cov=mitmproxy/net/tcp.py --no-full-cov=mitmproxy/net/http/cookies.py --no-full-cov=mitmproxy/net/http/encoding.py --no-full-cov=mitmproxy/net/http/message.py --no-full-cov=mitmproxy/net/http/request.py --no-full-cov=mitmproxy/net/http/response.py --no-full-cov=mitmproxy/net/http/url.py \
--full-cov=mitmproxy/proxy/ --no-full-cov=mitmproxy/proxy/protocol/ --no-full-cov=mitmproxy/proxy/config.py --no-full-cov=mitmproxy/proxy/root_context.py --no-full-cov=mitmproxy/proxy/server.py \
--full-cov=mitmproxy/script/ \
--full-cov=mitmproxy/test/ \
- --full-cov=mitmproxy/types/ --no-full-cov=mitmproxy/types/basethread.py \
+ --full-cov=mitmproxy/types/ \
--full-cov=mitmproxy/utils/ \
--full-cov=mitmproxy/__init__.py \
--full-cov=mitmproxy/addonmanager.py \
--full-cov=mitmproxy/ctx.py \
--full-cov=mitmproxy/exceptions.py \
+ --full-cov=mitmproxy/io.py \
--full-cov=mitmproxy/log.py \
--full-cov=mitmproxy/options.py \
--full-cov=pathod/ --no-full-cov=pathod/pathoc.py --no-full-cov=pathod/pathod.py --no-full-cov=pathod/test.py --no-full-cov=pathod/protocols/http2.py \