summaryrefslogtreecommitdiff
path: root/webtest/utils.py
diff options
context:
space:
mode:
authorGael Pasgrimaud <gael@gawel.org>2013-02-12 13:24:43 +0100
committerGael Pasgrimaud <gael@gawel.org>2013-02-12 13:24:43 +0100
commit4cc60e648a84a88be8ecb6123ad96463a1cd72d8 (patch)
tree622f568eae4c5c5d09a047659777a3ca46f10827 /webtest/utils.py
parent764b3bfe47bedb26f1f79bc78b8cb6697508f28d (diff)
parent16bfee71fbe8adff2843cdb2a1b767c8741fcdc0 (diff)
downloadwebtest-4cc60e648a84a88be8ecb6123ad96463a1cd72d8.tar.gz
merge conflicts
Diffstat (limited to 'webtest/utils.py')
-rw-r--r--webtest/utils.py28
1 files changed, 26 insertions, 2 deletions
diff --git a/webtest/utils.py b/webtest/utils.py
index a81b041..fa3ad3f 100644
--- a/webtest/utils.py
+++ b/webtest/utils.py
@@ -1,6 +1,5 @@
# -*- coding: utf-8 -*-
-from webtest.compat import name2codepoint
-from webtest.compat import urlencode
+from webtest.compat import MutableMapping, name2codepoint, urlencode
from json import dumps
from six import binary_type
from six import text_type
@@ -9,6 +8,31 @@ import functools
import re
+class CleverCookieDict(MutableMapping):
+ def __init__(self, morsels):
+ self.morsels = morsels
+
+ def __getitem__(self, k):
+ return self.morsels[k].value
+
+ def __setitem__(self, k, v):
+ morsel = self.morsels.setdefault(k, Morsel())
+ morsel.set(k, v)
+
+ def __delitem__(self, k):
+ del self.morsels[k]
+
+ def __iter__(self):
+ return iter(self.morsels)
+
+ def __len__(self):
+ return len(self.morsels)
+
+ def __repr__(self):
+ return "{0.__class__.__name__}({1!r})".format(
+ self, dict((k, v.value) for k, v in self.morsels.items()))
+
+
class NoDefault(object):
def __repr__(self):
return '<NoDefault>'