Commit 6b3d2bc9 authored by Alex Gaynor's avatar Alex Gaynor
Browse files

Merge pull request #444 from mitar/patch-2

Allow reversed iteration over SortedDict.
parents 6b0d93df 2811e543
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -160,6 +160,9 @@ class SortedDict(dict):
    def __iter__(self):
        return iter(self.keyOrder)

    def __reversed__(self):
        return reversed(self.keyOrder)

    def pop(self, k, *args):
        result = super(SortedDict, self).pop(k, *args)
        try:
+6 −0
Original line number Diff line number Diff line
@@ -128,6 +128,12 @@ class SortedDictTests(SimpleTestCase):
        self.assertEqual(self.d1, {})
        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):
        d = SortedDict()
        with warnings.catch_warnings(record=True) as w: