Fix TypeError when get resource list

Fix TypeError when get resource list where marker doesn't in the
candidate resources during prev/next marker picking progress.

Change-Id: I29876b90f0784a36efa4d4e83f3ee23e8235f9fa
Closes-Bug: #1706490
This commit is contained in:
zhuli 2017-07-26 11:16:22 +08:00
parent 13a523e008
commit 0921792d93
2 changed files with 5 additions and 0 deletions

View File

@ -82,6 +82,8 @@ def _get_prev_and_next_objects(objects, limit, marker, order=None):
if obj.id == marker.id:
position = pos
break
else:
return None, None
if position - limit >= 0:
prev_marker = objects[position - limit].id
else:

View File

@ -40,6 +40,9 @@ class TestPaginationUtils(testtools.TestCase):
res = api._get_prev_and_next_objects(query, 5, mock.MagicMock(id=4))
self.assertEqual((None, 9), res)
res = api._get_prev_and_next_objects(query, 5, mock.MagicMock(id=100))
self.assertEqual((None, None), res)
def test_parse_sorting_args(self):
self.assertEqual(("name", "desc"), api._parse_sorting_args("-name"))
self.assertEqual(("name", "asc"), api._parse_sorting_args("name"))