aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmproxy/contentviews.py8
-rw-r--r--test/test_contentview.py13
2 files changed, 21 insertions, 0 deletions
diff --git a/libmproxy/contentviews.py b/libmproxy/contentviews.py
index 9af08033..8d5aadfc 100644
--- a/libmproxy/contentviews.py
+++ b/libmproxy/contentviews.py
@@ -515,6 +515,14 @@ def get_by_shortcut(c):
return i
+def add(obj):
+ for i in views:
+ if i.name == obj.name:
+ raise ContentViewException("Duplicate view: " + obj.name)
+
+ views.append(obj)
+
+
def get(name):
for i in views:
if i.name == name:
diff --git a/test/test_contentview.py b/test/test_contentview.py
index 97608520..68272fca 100644
--- a/test/test_contentview.py
+++ b/test/test_contentview.py
@@ -210,6 +210,19 @@ Larry
assert "decoded gzip" in r[0]
assert "Raw" in r[0]
+ def test_add_cv(self):
+ class TestContentView(cv.View):
+ name = "test"
+
+ tcv = TestContentView()
+ cv.add(tcv)
+
+ tutils.raises(
+ ContentViewException,
+ cv.add,
+ tcv
+ )
+
if pyamf:
def test_view_amf_request():