Fix the bitbucket lister; handle properly the date-like bounds
This commit is contained in:
parent
94a35f12aa
commit
c2c26d7e46
3 changed files with 41 additions and 0 deletions
|
@ -4,3 +4,4 @@ python_debian
|
|||
requests
|
||||
setuptools
|
||||
xmltodict
|
||||
iso8601
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue