Mercurial > cpython-lru_cache-weakref
changeset 68225:93fd16670774
Mentioned new clear() method of MutableSequence in its doc, and added unit tests for its mixin methods
| author | Eli Bendersky <eliben@gmail.com> |
|---|---|
| date | Fri, 04 Mar 2011 10:38:14 +0000 |
| parents | 3f70c54d86d8 |
| children | e74209b9b2f5 |
| files | Doc/library/collections.abc.rst Lib/test/test_collections.py |
| diffstat | 2 files changed, 39 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/Doc/library/collections.abc.rst Fri Mar 04 05:34:58 2011 +0000 +++ b/Doc/library/collections.abc.rst Fri Mar 04 10:38:14 2011 +0000 @@ -46,7 +46,7 @@ :class:`MutableSequence` :class:`Sequence` ``__setitem__`` Inherited Sequence methods and ``__delitem__``, ``append``, ``reverse``, ``extend``, ``pop``, - and ``insert`` ``remove``, and ``__iadd__`` + and ``insert`` ``remove``, ``clear``, and ``__iadd__`` :class:`Set` :class:`Sized`, ``__le__``, ``__lt__``, ``__eq__``, ``__ne__``, :class:`Iterable`, ``__gt__``, ``__ge__``, ``__and__``, ``__or__``,
--- a/Lib/test/test_collections.py Fri Mar 04 05:34:58 2011 +0000 +++ b/Lib/test/test_collections.py Fri Mar 04 10:38:14 2011 +0000 @@ -728,6 +728,44 @@ 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
