Merge pull request #444 from mitar/patch-2
Allow reversed iteration over SortedDict.
This commit is contained in:
commit
6b3d2bc981
|
@ -160,6 +160,9 @@ class SortedDict(dict):
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
return iter(self.keyOrder)
|
return iter(self.keyOrder)
|
||||||
|
|
||||||
|
def __reversed__(self):
|
||||||
|
return reversed(self.keyOrder)
|
||||||
|
|
||||||
def pop(self, k, *args):
|
def pop(self, k, *args):
|
||||||
result = super(SortedDict, self).pop(k, *args)
|
result = super(SortedDict, self).pop(k, *args)
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -128,6 +128,12 @@ class SortedDictTests(SimpleTestCase):
|
||||||
self.assertEqual(self.d1, {})
|
self.assertEqual(self.d1, {})
|
||||||
self.assertEqual(self.d1.keyOrder, [])
|
self.assertEqual(self.d1.keyOrder, [])
|
||||||
|
|
||||||
|
def test_reversed(self):
|
||||||
|
self.assertEqual(list(self.d1), [7, 1, 9])
|
||||||
|
self.assertEqual(list(self.d2), [1, 9, 0, 7])
|
||||||
|
self.assertEqual(list(reversed(self.d1)), [9, 1, 7])
|
||||||
|
self.assertEqual(list(reversed(self.d2)), [7, 0, 9, 1])
|
||||||
|
|
||||||
def test_insert(self):
|
def test_insert(self):
|
||||||
d = SortedDict()
|
d = SortedDict()
|
||||||
with warnings.catch_warnings(record=True) as w:
|
with warnings.catch_warnings(record=True) as w:
|
||||||
|
|
Loading…
Reference in New Issue