Fix the bitbucket lister; handle properly the date-like bounds

This commit is contained in:
David Douard 2019-01-31 16:12:07 +01:00
parent 94a35f12aa
commit c2c26d7e46
3 changed files with 41 additions and 0 deletions

View file

@ -4,3 +4,4 @@ python_debian
requests
setuptools
xmltodict
iso8601

View file

@ -3,11 +3,16 @@
# See top-level LICENSE file for more information
from urllib import parse
import logging
import iso8601
from swh.lister.bitbucket.models import BitBucketModel
from swh.lister.core.indexing_lister import SWHIndexingHttpLister
logger = logging.getLogger(__name__)
class BitBucketLister(SWHIndexingHttpLister):
PATH_TEMPLATE = '/repositories?after=%s'
MODEL = BitBucketModel
@ -38,3 +43,29 @@ class BitBucketLister(SWHIndexingHttpLister):
def request_uri(self, identifier):
return super().request_uri(identifier or '1970-01-01')
def is_within_bounds(self, inner, lower=None, upper=None):
# values are expected to be str dates
try:
inner = iso8601.parse_date(inner)
if lower:
lower = iso8601.parse_date(lower)
if upper:
upper = iso8601.parse_date(upper)
if lower is None and upper is None:
return True
elif lower is None:
ret = inner <= upper
elif upper is None:
ret = inner >= lower
else:
ret = lower <= inner <= upper
except Exception as e:
logger.error(str(e) + ': %s, %s, %s' %
(('inner=%s%s' % (type(inner), inner)),
('lower=%s%s' % (type(lower), lower)),
('upper=%s%s' % (type(upper), upper)))
)
raise
return ret

View file

@ -18,3 +18,12 @@ class BitBucketListerTester(HttpListerTester, unittest.TestCase):
first_index = '2008-07-12T07:44:01.476818+00:00'
last_index = '2008-07-19T06:16:43.044743+00:00'
entries_per_page = 10
def test_is_within_bounds(self):
fl = self.get_fl()
self.assertTrue(fl.is_within_bounds(
'2008-07-15', self.first_index, self.last_index))
self.assertFalse(fl.is_within_bounds(
'2008-07-20', self.first_index, self.last_index))
self.assertFalse(fl.is_within_bounds(
'2008-07-11', self.first_index, self.last_index))