aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/mitmproxy/test_connections.py25
-rw-r--r--test/mitmproxy/types/test_serializable.py19
2 files changed, 40 insertions, 4 deletions
diff --git a/test/mitmproxy/test_connections.py b/test/mitmproxy/test_connections.py
index 0083f57c..67a6552f 100644
--- a/test/mitmproxy/test_connections.py
+++ b/test/mitmproxy/test_connections.py
@@ -66,8 +66,18 @@ class TestClientConnection:
assert c.timestamp_start == 42
c3 = c.copy()
+ assert c3.get_state() != c.get_state()
+ c.id = c3.id = "foo"
assert c3.get_state() == c.get_state()
+ def test_eq(self):
+ c = tflow.tclient_conn()
+ c2 = c.copy()
+ assert c == c
+ assert c != c2
+ assert c != 42
+ assert hash(c) != hash(c2)
+
class TestServerConnection:
@@ -147,6 +157,21 @@ class TestServerConnection:
with pytest.raises(ValueError, matches='sni must be str, not '):
c.establish_ssl(None, b'foobar')
+ def test_state(self):
+ c = tflow.tserver_conn()
+ c2 = c.copy()
+ assert c2.get_state() != c.get_state()
+ c.id = c2.id = "foo"
+ assert c2.get_state() == c.get_state()
+
+ def test_eq(self):
+ c = tflow.tserver_conn()
+ c2 = c.copy()
+ assert c == c
+ assert c != c2
+ assert c != 42
+ assert hash(c) != hash(c2)
+
class TestClientConnectionTLS:
diff --git a/test/mitmproxy/types/test_serializable.py b/test/mitmproxy/types/test_serializable.py
index dd4a3778..390d17e1 100644
--- a/test/mitmproxy/types/test_serializable.py
+++ b/test/mitmproxy/types/test_serializable.py
@@ -1,3 +1,5 @@
+import copy
+
from mitmproxy.types import serializable
@@ -6,17 +8,17 @@ class SerializableDummy(serializable.Serializable):
self.i = i
def get_state(self):
- return self.i
+ return copy.copy(self.i)
def set_state(self, i):
self.i = i
- def from_state(self, state):
- return type(self)(state)
+ @classmethod
+ def from_state(cls, state):
+ return cls(state)
class TestSerializable:
-
def test_copy(self):
a = SerializableDummy(42)
assert a.i == 42
@@ -26,3 +28,12 @@ class TestSerializable:
a.set_state(1)
assert a.i == 1
assert b.i == 42
+
+ def test_copy_id(self):
+ a = SerializableDummy({
+ "id": "foo",
+ "foo": 42
+ })
+ b = a.copy()
+ assert a.get_state()["id"] != b.get_state()["id"]
+ assert a.get_state()["foo"] == b.get_state()["foo"]