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): def __iter__(self):
return iter(self.dict) return iter(self.dict)
def __reversed__(self):
return reversed(self.dict)
def __contains__(self, item): def __contains__(self, item):
return item in self.dict return item in self.dict

View File

@ -1,7 +1,7 @@
""" """
Tests for stuff in django.utils.datastructures. Tests for stuff in django.utils.datastructures.
""" """
import collections.abc
import copy import copy
import pickle import pickle
@ -34,6 +34,11 @@ class OrderedSetTests(SimpleTestCase):
s.discard(2) s.discard(2)
self.assertEqual(len(s), 1) 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): def test_contains(self):
s = OrderedSet() s = OrderedSet()
self.assertEqual(len(s), 0) self.assertEqual(len(s), 0)