Browse Source

Fix len() sometimes raising ValueError on empty node lists (fixes #174)

tags/v0.5
Ben Kurtovic 7 years ago
parent
commit
f34f662f35
4 changed files with 4 additions and 1 deletions
  1. +1
    -0
      CHANGELOG
  2. +1
    -0
      docs/changelog.rst
  3. +1
    -1
      mwparserfromhell/smart_list.py
  4. +1
    -0
      tests/test_smart_list.py

+ 1
- 0
CHANGELOG View File

@@ -1,5 +1,6 @@
v0.5 (unreleased):

- Fixed len() sometimes raising ValueError on empty node lists.
- Fixed release script after changes to PyPI.

v0.4.4 (released December 30, 2016):


+ 1
- 0
docs/changelog.rst View File

@@ -7,6 +7,7 @@ v0.5
Unreleased
(`changes <https://github.com/earwig/mwparserfromhell/compare/v0.4.4...develop>`__):

- Fixed ``len()`` sometimes raising ``ValueError`` on empty node lists.
- Fixed release script after changes to PyPI.

v0.4.4


+ 1
- 1
mwparserfromhell/smart_list.py View File

@@ -271,7 +271,7 @@ class _ListProxy(_SliceNormalizerMixIn, list):
return bool(self._render())

def __len__(self):
return (self._stop - self._start) // self._step
return max((self._stop - self._start) // self._step, 0)

def __getitem__(self, key):
if isinstance(key, slice):


+ 1
- 0
tests/test_smart_list.py View File

@@ -398,6 +398,7 @@ class TestSmartList(unittest.TestCase):
self.assertEqual([4, 3, 2, 1.9, 1.8, 5, 6], child1)
self.assertEqual([4, 3, 2, 1.9, 1.8], child2)
self.assertEqual([], child3)
self.assertEqual(0, len(child3))

del child1
self.assertEqual([1, 4, 3, 2, 1.9, 1.8, 5, 6], parent)


Loading…
Cancel
Save