Fixed #2779: added a copy() method to MergeDict, along with some new tests for django.utils.datastructures. Thanks, Chris McAvoy.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4640 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
19e0bf1d44
commit
6ca7930dd4
|
@ -17,6 +17,9 @@ class MergeDict(object):
|
||||||
def __contains__(self, key):
|
def __contains__(self, key):
|
||||||
return self.has_key(key)
|
return self.has_key(key)
|
||||||
|
|
||||||
|
def __copy__(self):
|
||||||
|
return self.__class__(*self.dicts)
|
||||||
|
|
||||||
def get(self, key, default=None):
|
def get(self, key, default=None):
|
||||||
try:
|
try:
|
||||||
return self[key]
|
return self[key]
|
||||||
|
@ -43,6 +46,10 @@ class MergeDict(object):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
""" returns a copy of this object"""
|
||||||
|
return self.__copy__()
|
||||||
|
|
||||||
class SortedDict(dict):
|
class SortedDict(dict):
|
||||||
"A dictionary that keeps its keys in the order in which they're inserted."
|
"A dictionary that keeps its keys in the order in which they're inserted."
|
||||||
def __init__(self, data=None):
|
def __init__(self, data=None):
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
"""
|
||||||
|
# Tests for stuff in django.utils.datastructures.
|
||||||
|
|
||||||
|
>>> from django.utils.datastructures import *
|
||||||
|
|
||||||
|
### MergeDict #################################################################
|
||||||
|
|
||||||
|
>>> d1 = {'chris':'cool','camri':'cute','cotton':'adorable','tulip':'snuggable', 'twoofme':'firstone'}
|
||||||
|
>>> d2 = {'chris2':'cool2','camri2':'cute2','cotton2':'adorable2','tulip2':'snuggable2'}
|
||||||
|
>>> d3 = {'chris3':'cool3','camri3':'cute3','cotton3':'adorable3','tulip3':'snuggable3'}
|
||||||
|
>>> d4 = {'twoofme':'secondone'}
|
||||||
|
>>> md = MergeDict( d1,d2,d3 )
|
||||||
|
>>> md['chris']
|
||||||
|
'cool'
|
||||||
|
>>> md['camri']
|
||||||
|
'cute'
|
||||||
|
>>> md['twoofme']
|
||||||
|
'firstone'
|
||||||
|
>>> md2 = md.copy()
|
||||||
|
>>> md2['chris']
|
||||||
|
'cool'
|
||||||
|
|
||||||
|
### MultiValueDict ##########################################################
|
||||||
|
|
||||||
|
>>> d = MultiValueDict({'name': ['Adrian', 'Simon'], 'position': ['Developer']})
|
||||||
|
>>> d['name']
|
||||||
|
'Simon'
|
||||||
|
>>> d.getlist('name')
|
||||||
|
['Adrian', 'Simon']
|
||||||
|
>>> d.get('lastname', 'nonexistent')
|
||||||
|
'nonexistent'
|
||||||
|
>>> d.setlist('lastname', ['Holovaty', 'Willison'])
|
||||||
|
|
||||||
|
"""
|
Loading…
Reference in New Issue