diff options
| author | ianb <devnull@localhost> | 2006-09-26 17:11:04 +0000 |
|---|---|---|
| committer | ianb <devnull@localhost> | 2006-09-26 17:11:04 +0000 |
| commit | a731343f4b009e8afdbe21f44ddbaaa108381853 (patch) | |
| tree | 6e7537606a596ea5cc63ba7a2e722bf8b61992de | |
| parent | 71b94e30a52613047204a8bbd3cae5bbb348bb23 (diff) | |
| download | paste-a731343f4b009e8afdbe21f44ddbaaa108381853.tar.gz | |
Added some tests for multidict; fixed setdefault
| -rw-r--r-- | paste/util/multidict.py | 2 | ||||
| -rw-r--r-- | tests/test_multidict.py | 24 |
2 files changed, 25 insertions, 1 deletions
diff --git a/paste/util/multidict.py b/paste/util/multidict.py index 37a9d8c..246061d 100644 --- a/paste/util/multidict.py +++ b/paste/util/multidict.py @@ -132,7 +132,7 @@ class MultiDict(DictMixin): for k, v in self._items: if key == k: return v - self._items.append(default) + self._items.append((key, default)) return default def pop(self, key, *args): diff --git a/tests/test_multidict.py b/tests/test_multidict.py new file mode 100644 index 0000000..494b0b2 --- /dev/null +++ b/tests/test_multidict.py @@ -0,0 +1,24 @@ +from paste.util.multidict import MultiDict +from py.test import raises + +def test_dict(): + d = MultiDict({'a': 1}) + assert d.items() == [('a', 1)] + d['b'] = 2 + d['c'] = 3 + assert d.items() == [('a', 1), ('b', 2), ('c', 3)] + d['b'] = 4 + assert d.items() == [('a', 1), ('c', 3), ('b', 4)] + d.add('b', 5) + raises(KeyError, 'd.getone("b")') + assert d.getall('b') == [4, 5] + assert d.items() == [('a', 1), ('c', 3), ('b', 4), ('b', 5)] + del d['b'] + assert d.items() == [('a', 1), ('c', 3)] + assert d.pop('xxx', 5) == 5 + assert d.getone('a') == 1 + assert d.popitem() == ('c', 3) + assert d.items() == [('a', 1)] + item = [] + assert d.setdefault('z', item) is item + assert d.items() == [('a', 1), ('z', item)] |
