diff --git a/swh/lister/phabricator/lister.py b/swh/lister/phabricator/lister.py --- a/swh/lister/phabricator/lister.py +++ b/swh/lister/phabricator/lister.py @@ -80,9 +80,8 @@ def get_next_target_from_response(self, response): body = response.json()['result']['cursor'] - if body['after'] != 'null': - return body['after'] - return None + if body['after'] and body['after'] != 'null': + return int(body['after']) def transport_response_simplified(self, response): repos = response.json() diff --git a/swh/lister/phabricator/tests/test_lister.py b/swh/lister/phabricator/tests/test_lister.py --- a/swh/lister/phabricator/tests/test_lister.py +++ b/swh/lister/phabricator/tests/test_lister.py @@ -84,3 +84,14 @@ ingested_repos = list(fl.db_query_range(self.first_index, self.last_index)) self.assertEqual(len(ingested_repos), self.entries_per_page) + + @requests_mock.Mocker() + def test_range_listing(self, http_mocker): + fl = self.create_fl_with_db(http_mocker) + + fl.run(max_bound=self.last_index - 1) + + self.assertEqual(fl.db_last_index(), self.last_index - 1) + ingested_repos = list(fl.db_query_range(self.first_index, + self.last_index)) + self.assertEqual(len(ingested_repos), self.entries_per_page - 1)