From 1acaf1c880ba7054e4eb1cc1ed4ea5d0cf852e61 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 2 Mar 2014 16:54:21 +1300 Subject: Re-add state operations to ODict. --- netlib/odict.py | 10 ++++++++++ test/test_odict.py | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/netlib/odict.py b/netlib/odict.py index 7c743f4e..46b74e8e 100644 --- a/netlib/odict.py +++ b/netlib/odict.py @@ -96,6 +96,16 @@ class ODict: def items(self): return self.lst[:] + def _get_state(self): + return [tuple(i) for i in self.lst] + + def _load_state(self, state): + self.list = [list(i) for i in state] + + @classmethod + def _from_state(klass, state): + return klass([list(i) for i in state]) + def copy(self): """ Returns a copy of this object. diff --git a/test/test_odict.py b/test/test_odict.py index cdbb4f39..794956be 100644 --- a/test/test_odict.py +++ b/test/test_odict.py @@ -24,6 +24,15 @@ class TestODict: for i in expected: assert out.find(i) >= 0 + def test_getset_state(self): + self.od.add("foo", 1) + self.od.add("foo", 2) + self.od.add("bar", 3) + state = self.od._get_state() + nd = odict.ODict._from_state(state) + assert nd == self.od + nd._load_state(state) + def test_dictToHeader2(self): self.od["one"] = ["uno"] expected1 = "one: uno\r\n" -- cgit v1.2.3