aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--netlib/odict.py6
-rw-r--r--test/test_odict.py7
2 files changed, 12 insertions, 1 deletions
diff --git a/netlib/odict.py b/netlib/odict.py
index 7a2f611b..7a54f282 100644
--- a/netlib/odict.py
+++ b/netlib/odict.py
@@ -108,6 +108,12 @@ class ODict(object):
lst = copy.deepcopy(self.lst)
return self.__class__(lst)
+ def extend(self, other):
+ """
+ Add the contents of other, preserving any duplicates.
+ """
+ self.lst.extend(other.lst)
+
def __repr__(self):
elements = []
for itm in self.lst:
diff --git a/test/test_odict.py b/test/test_odict.py
index d90bc6e5..c2415b6d 100644
--- a/test/test_odict.py
+++ b/test/test_odict.py
@@ -109,6 +109,12 @@ class TestODict:
assert self.od.get_first("one") == "two"
assert self.od.get_first("two") == None
+ def test_extend(self):
+ a = odict.ODict([["a", "b"], ["c", "d"]])
+ b = odict.ODict([["a", "b"], ["e", "f"]])
+ a.extend(b)
+ assert len(a) == 4
+ assert a["a"] == ["b", "b"]
class TestODictCaseless:
def setUp(self):
@@ -144,4 +150,3 @@ class TestODictCaseless:
assert self.od.keys() == ["foo"]
self.od.add("bar", 2)
assert len(self.od.keys()) == 2
-