diff options
| author | Gael Pasgrimaud <gael@gawel.org> | 2013-02-12 13:24:43 +0100 |
|---|---|---|
| committer | Gael Pasgrimaud <gael@gawel.org> | 2013-02-12 13:24:43 +0100 |
| commit | 4cc60e648a84a88be8ecb6123ad96463a1cd72d8 (patch) | |
| tree | 622f568eae4c5c5d09a047659777a3ca46f10827 /webtest/utils.py | |
| parent | 764b3bfe47bedb26f1f79bc78b8cb6697508f28d (diff) | |
| parent | 16bfee71fbe8adff2843cdb2a1b767c8741fcdc0 (diff) | |
| download | webtest-4cc60e648a84a88be8ecb6123ad96463a1cd72d8.tar.gz | |
merge conflicts
Diffstat (limited to 'webtest/utils.py')
| -rw-r--r-- | webtest/utils.py | 28 |
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>' |
