in mozregression/json_pushes.py [0:0]
def pushes_within_changes(self, fromchange, tochange, verbose=True, **kwargs):
"""
Returns a list of Push objects, including fromchange and tochange.
This will return at least one Push. In case of error it will raise
a MozRegressionError.
"""
from_is_date = is_date_or_datetime(fromchange)
to_is_date = is_date_or_datetime(tochange)
kwargs = {}
if not from_is_date:
# the first changeset is not taken into account in the result.
# let's add it directly with this request
chsets = self.pushes(changeset=fromchange)
kwargs["fromchange"] = fromchange
else:
chsets = []
kwargs["startdate"] = fromchange.strftime("%Y-%m-%d")
if not to_is_date:
kwargs["tochange"] = tochange
else:
# add one day to take the last day in account
kwargs["enddate"] = (tochange + datetime.timedelta(days=1)).strftime("%Y-%m-%d")
# now fetch all remaining changesets
chsets.extend(self.pushes(**kwargs))
log = LOG.info if verbose else LOG.debug
if from_is_date:
first = chsets[0]
log(
"Using {} (pushed on {}) for date {}".format(
first.changeset, first.utc_date, fromchange
)
)
if to_is_date:
last = chsets[-1]
log(
"Using {} (pushed on {}) for date {}".format(
last.changeset, last.utc_date, tochange
)
)
return chsets