mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Mentioned new clear() method of MutableSequence in its doc, and added unit tests for its mixin methods
This commit is contained in:
parent
9479d1ade8
commit
0716a579a4
2 changed files with 39 additions and 1 deletions
|
@ -728,6 +728,44 @@ class TestCollectionABCs(ABCTestCase):
|
|||
self.validate_abstract_methods(MutableSequence, '__contains__', '__iter__',
|
||||
'__len__', '__getitem__', '__setitem__', '__delitem__', 'insert')
|
||||
|
||||
def test_MutableSequence_mixins(self):
|
||||
# Test the mixins of MutableSequence by creating a miminal concrete
|
||||
# class inherited from it.
|
||||
class MutableSequenceSubclass(MutableSequence):
|
||||
def __init__(self):
|
||||
self.lst = []
|
||||
|
||||
def __setitem__(self, index, value):
|
||||
self.lst[index] = value
|
||||
|
||||
def __getitem__(self, index):
|
||||
return self.lst[index]
|
||||
|
||||
def __len__(self):
|
||||
return len(self.lst)
|
||||
|
||||
def __delitem__(self, index):
|
||||
del self.lst[index]
|
||||
|
||||
def insert(self, index, value):
|
||||
self.lst.insert(index, value)
|
||||
|
||||
mss = MutableSequenceSubclass()
|
||||
mss.append(0)
|
||||
mss.extend((1, 2, 3, 4))
|
||||
self.assertEqual(len(mss), 5)
|
||||
self.assertEqual(mss[3], 3)
|
||||
mss.reverse()
|
||||
self.assertEqual(mss[3], 1)
|
||||
mss.pop()
|
||||
self.assertEqual(len(mss), 4)
|
||||
mss.remove(3)
|
||||
self.assertEqual(len(mss), 3)
|
||||
mss += (10, 20, 30)
|
||||
self.assertEqual(len(mss), 6)
|
||||
self.assertEqual(mss[-1], 30)
|
||||
mss.clear()
|
||||
self.assertEqual(len(mss), 0)
|
||||
|
||||
################################################################################
|
||||
### Counter
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue