diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/mitmproxy/test_connections.py | 25 | ||||
| -rw-r--r-- | test/mitmproxy/types/test_serializable.py | 19 | 
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"] | 
