fixed bug when accessing rows by index; added the missing test that caused this to...
authorMichael Elsdoerfer <michael@elsdoerfer.info>
Thu, 26 Jun 2008 21:12:12 +0000 (23:12 +0200)
committerMichael Elsdoerfer <michael@elsdoerfer.info>
Thu, 26 Jun 2008 21:12:12 +0000 (23:12 +0200)
django_tables/tables.py
tests/test_basic.py

index 8fab3d7b5c851dd1cc08a5f1361dc2b44bb34f56..3a1f532ffcd7c341eaaeac724660f10fa39d130d 100644 (file)
@@ -448,8 +448,10 @@ class Rows(object):
             for row in self.table.data[key]:\r
                 result.append(self.row_klass(self.table, row))\r
             return result\r
+        elif isinstance(key, int):\r
+            return self.row_klass(self.table, self.table.data[key])\r
         else:\r
-            return self.row_klass(self, table, self.table.data[key])\r
+            raise TypeError('Key must be a slice or integer.')\r
 \r
 class BoundRow(object):\r
     """Represents a single row of data, bound to a table.\r
index cc6c33d9926ee8d9886ccaa0ca2c1519ef5585be..d090df09206b58d27619f1cbe1fe9d0821e49d24 100644 (file)
@@ -82,6 +82,10 @@ def test_basic():
         # columns with data= option work fine\r
         assert r['email'] == 'foo@bar.org'\r
 \r
+    # try to splice rows by index\r
+    assert 'name' in stuff.rows[0]\r
+    assert isinstance(stuff.rows[0:], list)\r
+\r
     # changing an instance's base_columns does not change the class\r
     assert id(stuff.base_columns) != id(StuffTable.base_columns)\r
     stuff.base_columns['test'] = tables.Column()\r