Casting dbapi limit query_param to int
Since query params are provided by django as a String, all limits were failing the comparison against the HARD_LIMIT and thus a limit of 1 was getting turned into the HARD_LIMIT.
This commit is contained in:
parent
691c2833cc
commit
0d3a8be1de
@ -290,6 +290,10 @@ def get_db_objects(klass, request, default_order_by, direction='desc',
|
||||
|
||||
offset = request.GET.get('offset')
|
||||
limit = request.GET.get('limit', DEFAULT_LIMIT)
|
||||
|
||||
if limit:
|
||||
limit = int(limit)
|
||||
|
||||
if limit > HARD_LIMIT:
|
||||
limit = HARD_LIMIT
|
||||
if offset:
|
||||
|
@ -195,7 +195,7 @@ class DBAPITestCase(unittest.TestCase):
|
||||
def test_get_db_objects_limit(self):
|
||||
fake_model = self.make_fake_model()
|
||||
fake_request = self.mox.CreateMockAnything()
|
||||
fake_request.GET = {'limit': 1}
|
||||
fake_request.GET = {'limit': '1'}
|
||||
self.mox.StubOutWithMock(dbapi, '_get_filter_args')
|
||||
dbapi._get_filter_args(fake_model, fake_request,
|
||||
custom_filters=None).AndReturn({})
|
||||
@ -215,7 +215,7 @@ class DBAPITestCase(unittest.TestCase):
|
||||
def test_get_db_objects_hard_limit(self):
|
||||
fake_model = self.make_fake_model()
|
||||
fake_request = self.mox.CreateMockAnything()
|
||||
fake_request.GET = {'limit': dbapi.HARD_LIMIT + 1}
|
||||
fake_request.GET = {'limit': str(dbapi.HARD_LIMIT + 1)}
|
||||
self.mox.StubOutWithMock(dbapi, '_get_filter_args')
|
||||
dbapi._get_filter_args(fake_model, fake_request,
|
||||
custom_filters=None).AndReturn({})
|
||||
@ -236,7 +236,7 @@ class DBAPITestCase(unittest.TestCase):
|
||||
def test_get_db_objects_offset(self):
|
||||
fake_model = self.make_fake_model()
|
||||
fake_request = self.mox.CreateMockAnything()
|
||||
fake_request.GET = {'offset': 1}
|
||||
fake_request.GET = {'offset': '1'}
|
||||
self.mox.StubOutWithMock(dbapi, '_get_filter_args')
|
||||
dbapi._get_filter_args(fake_model, fake_request,
|
||||
custom_filters=None).AndReturn({})
|
||||
@ -256,7 +256,7 @@ class DBAPITestCase(unittest.TestCase):
|
||||
def test_get_db_objects_offset_and_limit(self):
|
||||
fake_model = self.make_fake_model()
|
||||
fake_request = self.mox.CreateMockAnything()
|
||||
fake_request.GET = {'offset': 2, 'limit': 2}
|
||||
fake_request.GET = {'offset': '2', 'limit': '2'}
|
||||
self.mox.StubOutWithMock(dbapi, '_get_filter_args')
|
||||
dbapi._get_filter_args(fake_model, fake_request,
|
||||
custom_filters=None).AndReturn({})
|
||||
|
Loading…
x
Reference in New Issue
Block a user