From 541fba67866833e43b741c50bcfccec914c36834 Mon Sep 17 00:00:00 2001 From: Thomas Roten Date: Sat, 28 Mar 2015 16:14:27 -0400 Subject: [PATCH] Fixes Row slicing. Fixes #184. --- tablib/core.py | 2 +- test_tablib.py | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/tablib/core.py b/tablib/core.py index f8e2df7..7afdd71 100644 --- a/tablib/core.py +++ b/tablib/core.py @@ -45,7 +45,7 @@ class Row(object): return repr(self._row) def __getslice__(self, i, j): - return self._row[i,j] + return self._row[i:j] def __getitem__(self, i): return self._row[i] diff --git a/test_tablib.py b/test_tablib.py index ba57170..a1f581c 100755 --- a/test_tablib.py +++ b/test_tablib.py @@ -8,6 +8,7 @@ import sys import os import tablib from tablib.compat import markup, unicode, is_py3 +from tablib.core import Row @@ -206,6 +207,18 @@ class TablibTestCase(unittest.TestCase): self.assertEqual(self.founders[2:], [self.tom]) + def test_row_slicing(self): + """Verify Row's __getslice__ method. Issue #184.""" + + john = Row(self.john) + + self.assertEqual(john[:], list(self.john[:])) + self.assertEqual(john[0:], list(self.john[0:])) + self.assertEqual(john[:2], list(self.john[:2])) + self.assertEqual(john[0:2], list(self.john[0:2])) + self.assertEqual(john[0:-1], list(self.john[0:-1])) + + def test_delete(self): """Verify deleting from dataset works."""