From 81fe1c32552e5e2a9e9a779a43a7e0a4c5b75ee7 Mon Sep 17 00:00:00 2001 From: Andrew Melton Date: Mon, 8 Apr 2013 17:44:08 -0400 Subject: [PATCH] Changing default order_by to ascending --- stacktach/dbapi.py | 4 +++- tests/unit/test_dbapi.py | 35 ++++++++++++++++++++++++++++------- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/stacktach/dbapi.py b/stacktach/dbapi.py index 088dfd5..85734d5 100644 --- a/stacktach/dbapi.py +++ b/stacktach/dbapi.py @@ -252,7 +252,7 @@ def _get_filter_args(klass, request, custom_filters=None): return filter_args -def get_db_objects(klass, request, default_order_by, direction='asc', +def get_db_objects(klass, request, default_order_by, direction='desc', custom_filters=None): filter_args = _get_filter_args(klass, request, custom_filters=custom_filters) @@ -271,6 +271,8 @@ def get_db_objects(klass, request, default_order_by, direction='asc', direction = request.GET.get('direction', direction) if direction == 'desc': order_by = '-%s' % order_by + else: + order_by = '%s' % order_by offset = request.GET.get('offset') limit = request.GET.get('limit', DEFAULT_LIMIT) diff --git a/tests/unit/test_dbapi.py b/tests/unit/test_dbapi.py index b470dd5..c3e5af8 100644 --- a/tests/unit/test_dbapi.py +++ b/tests/unit/test_dbapi.py @@ -139,7 +139,7 @@ class DBAPITestCase(unittest.TestCase): dbapi._check_has_field(fake_model, 'id') result = self.mox.CreateMockAnything() fake_model.objects.all().AndReturn(result) - result.order_by('id').AndReturn(result) + result.order_by('-id').AndReturn(result) s = slice(None, dbapi.DEFAULT_LIMIT, None) result.__getitem__(s).AndReturn(result) self.mox.ReplayAll() @@ -170,6 +170,27 @@ class DBAPITestCase(unittest.TestCase): self.mox.VerifyAll() + def test_get_db_objects_asc(self): + fake_model = self.make_fake_model() + fake_request = self.mox.CreateMockAnything() + fake_request.GET = {'direction': 'asc'} + self.mox.StubOutWithMock(dbapi, '_get_filter_args') + dbapi._get_filter_args(fake_model, fake_request, + custom_filters=None).AndReturn({}) + self.mox.StubOutWithMock(dbapi, '_check_has_field') + dbapi._check_has_field(fake_model, 'id') + result = self.mox.CreateMockAnything() + fake_model.objects.all().AndReturn(result) + result.order_by('id').AndReturn(result) + s = slice(None, dbapi.DEFAULT_LIMIT, None) + result.__getitem__(s).AndReturn(result) + self.mox.ReplayAll() + + query_result = dbapi.get_db_objects(fake_model, fake_request, 'id') + self.assertEquals(query_result, result) + + self.mox.VerifyAll() + def test_get_db_objects_limit(self): fake_model = self.make_fake_model() fake_request = self.mox.CreateMockAnything() @@ -181,7 +202,7 @@ class DBAPITestCase(unittest.TestCase): dbapi._check_has_field(fake_model, 'id') result = self.mox.CreateMockAnything() fake_model.objects.all().AndReturn(result) - result.order_by('id').AndReturn(result) + result.order_by('-id').AndReturn(result) result.__getitem__(slice(None, 1, None)).AndReturn(result) self.mox.ReplayAll() @@ -201,7 +222,7 @@ class DBAPITestCase(unittest.TestCase): dbapi._check_has_field(fake_model, 'id') result = self.mox.CreateMockAnything() fake_model.objects.all().AndReturn(result) - result.order_by('id').AndReturn(result) + result.order_by('-id').AndReturn(result) s = slice(None, dbapi.HARD_LIMIT, None) result.__getitem__(s).AndReturn(result) self.mox.ReplayAll() @@ -222,7 +243,7 @@ class DBAPITestCase(unittest.TestCase): dbapi._check_has_field(fake_model, 'id') result = self.mox.CreateMockAnything() fake_model.objects.all().AndReturn(result) - result.order_by('id').AndReturn(result) + result.order_by('-id').AndReturn(result) result.__getslice__(1, dbapi.DEFAULT_LIMIT + 1).AndReturn(result) self.mox.ReplayAll() @@ -242,7 +263,7 @@ class DBAPITestCase(unittest.TestCase): dbapi._check_has_field(fake_model, 'id') result = self.mox.CreateMockAnything() fake_model.objects.all().AndReturn(result) - result.order_by('id').AndReturn(result) + result.order_by('-id').AndReturn(result) result.__getslice__(2, 4).AndReturn(result) self.mox.ReplayAll() @@ -263,7 +284,7 @@ class DBAPITestCase(unittest.TestCase): dbapi._check_has_field(fake_model, 'id') result = self.mox.CreateMockAnything() fake_model.objects.filter(**filters).AndReturn(result) - result.order_by('id').AndReturn(result) + result.order_by('-id').AndReturn(result) s = slice(None, dbapi.DEFAULT_LIMIT, None) result.__getitem__(s).AndReturn(result) self.mox.ReplayAll() @@ -289,7 +310,7 @@ class DBAPITestCase(unittest.TestCase): all_filters.update(filters) all_filters.update(custom_filters['raw']) fake_model.objects.filter(**all_filters).AndReturn(result) - result.order_by('id').AndReturn(result) + result.order_by('-id').AndReturn(result) s = slice(None, dbapi.DEFAULT_LIMIT, None) result.__getitem__(s).AndReturn(result) self.mox.ReplayAll()