Merge pull request #82 from irontable/master

Fix find order_by bug for descending order

Thanks to @irontable
This commit is contained in:
Stefan Wehrmeyer 2014-03-10 19:10:21 +01:00
commit 7e116cd690
2 changed files with 5 additions and 1 deletions

View File

@ -321,7 +321,7 @@ class Table(object):
self._check_dropped()
if not isinstance(order_by, (list, tuple)):
order_by = [order_by]
order_by = [o for o in order_by if o in self.table.columns]
order_by = [o for o in order_by if (o.startswith('-') and o[1:] or o) in self.table.columns]
order_by = [self._args_to_order_by(o) for o in order_by]
args = self._args_to_clause(_filter)

View File

@ -212,6 +212,10 @@ class TableTestCase(unittest.TestCase):
assert len(ds) == 2, ds
ds = list(self.tbl.find(place=TEST_CITY_1, _limit=1, _step=2))
assert len(ds) == 1, ds
ds = list(self.tbl.find(order_by=['temperature']))
assert ds[0]['temperature'] == -1, ds
ds = list(self.tbl.find(order_by=['-temperature']))
assert ds[0]['temperature'] == 8, ds
def test_offset(self):
ds = list(self.tbl.find(place=TEST_CITY_1, _offset=1))