Fixed #32517 -- Made OrderedSet reversible.

Refs #32516.
This commit is contained in:
Diego Lima 2021-03-06 17:41:24 -03:00 committed by Mariusz Felisiak
parent d01709aae2
commit 2e5aa444d1
2 changed files with 9 additions and 1 deletions

View File

@ -25,6 +25,9 @@ class OrderedSet:
def __iter__(self):
return iter(self.dict)
def __reversed__(self):
return reversed(self.dict)
def __contains__(self, item):
return item in self.dict

View File

@ -1,7 +1,7 @@
"""
Tests for stuff in django.utils.datastructures.
"""
import collections.abc
import copy
import pickle
@ -34,6 +34,11 @@ class OrderedSetTests(SimpleTestCase):
s.discard(2)
self.assertEqual(len(s), 1)
def test_reversed(self):
s = reversed(OrderedSet([1, 2, 3]))
self.assertIsInstance(s, collections.abc.Iterator)
self.assertEqual(list(s), [3, 2, 1])
def test_contains(self):
s = OrderedSet()
self.assertEqual(len(s), 0)