aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2017-03-14 02:18:02 +0100
committerMaximilian Hils <git@maximilianhils.com>2017-03-14 02:18:02 +0100
commitde1de3f626c142df759cd14aac5c46fd878d2d3c (patch)
tree74b83a6bc281f27fbe9b85ce73b2204436edcf92
parent124a6c9e5af44121208c3362215cc3ea895ffad7 (diff)
downloadmitmproxy-de1de3f626c142df759cd14aac5c46fd878d2d3c.tar.gz
mitmproxy-de1de3f626c142df759cd14aac5c46fd878d2d3c.tar.bz2
mitmproxy-de1de3f626c142df759cd14aac5c46fd878d2d3c.zip
add MultiDictView.copy
-rw-r--r--mitmproxy/types/multidict.py3
-rw-r--r--test/mitmproxy/types/test_multidict.py9
2 files changed, 12 insertions, 0 deletions
diff --git a/mitmproxy/types/multidict.py b/mitmproxy/types/multidict.py
index 31a1f22b..ac49200b 100644
--- a/mitmproxy/types/multidict.py
+++ b/mitmproxy/types/multidict.py
@@ -230,3 +230,6 @@ class MultiDictView(_MultiDict):
@fields.setter
def fields(self, value):
self._setter(value)
+
+ def copy(self):
+ return MultiDict(self.fields)
diff --git a/test/mitmproxy/types/test_multidict.py b/test/mitmproxy/types/test_multidict.py
index 9b13c5cd..7d38f6ba 100644
--- a/test/mitmproxy/types/test_multidict.py
+++ b/test/mitmproxy/types/test_multidict.py
@@ -205,3 +205,12 @@ class TestMultiDictView:
tv["c"] = "b"
assert p.vals == (("a", "b"), ("c", "b"))
assert tv["a"] == "b"
+
+ def test_copy(self):
+ p = TParent()
+ tv = multidict.MultiDictView(p.getter, p.setter)
+ c = tv.copy()
+ assert isinstance(c, multidict.MultiDict)
+ assert tv.items() == c.items()
+ c["foo"] = "bar"
+ assert tv.items() != c.items()