Skip to content

Commit

Permalink
reformat_slices: Fix slice/length comparison.
Browse files Browse the repository at this point in the history
Add a proper `ValueError` if the `slice`s and lengths don't match
one-to-one. Also include a test to make sure this exception is properly
raised.
  • Loading branch information
jakirkham committed Dec 5, 2016
1 parent 068e526 commit d65b1eb
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
3 changes: 2 additions & 1 deletion kenjutsu/kenjutsu.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,8 @@ def reformat_slices(slices, lengths=None):
except TypeError:
new_lengths = (new_lengths,)

assert (len(new_slices) == len(new_lengths))
if len(new_slices) != len(new_lengths):
raise ValueError("There must be an equal number of slices to lengths.")

new_slices = list(new_slices)
for i, each_length in enumerate(new_lengths):
Expand Down
8 changes: 8 additions & 0 deletions tests/test_kenjutsu.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,14 @@ def test_reformat_slice(self):


def test_reformat_slices(self):
with self.assertRaises(ValueError) as e:
kenjutsu.reformat_slices((slice(None),), (1, 2))

self.assertEqual(
str(e.exception),
"There must be an equal number of slices to lengths."
)

rf_slice = kenjutsu.reformat_slices(slice(None))
self.assertEqual(
rf_slice,
Expand Down

0 comments on commit d65b1eb

Please sign in to comment.