def get_revision_dict(self): """ Get dictionary of all revisions with a list of buildnumbers (int) that used that particular revision """ revs = defaultdict(list) if 'builds' not in self._data: raise NoBuildData(repr(self)) for buildnumber in self.get_build_ids(): revs[self.get_build(buildnumber).get_revision()].append( buildnumber) return revs
def get_build_dict(self): if "builds" not in self._data: raise NoBuildData(repr(self)) builds = self._data["builds"] last_build = self._data['lastBuild'] if builds and last_build and builds[0]['number'] != last_build['number']: builds = [last_build] + builds # FIXME SO how is this supposed to work if build is false-y? # I don't think that builds *can* be false here, so I don't # understand the test above. return dict((build["number"], build["url"]) for build in builds)
def _buildid_for_type(self, buildtype): """Gets a buildid for a given type of build""" self.poll() KNOWNBUILDTYPES = [ "lastStableBuild", "lastSuccessfulBuild", "lastBuild", "lastCompletedBuild", "firstBuild", "lastFailedBuild" ] assert buildtype in KNOWNBUILDTYPES, 'Unknown build info type: %s' % buildtype if not self._data.get(buildtype): raise NoBuildData(buildtype) return self._data[buildtype]["number"]
def get_build_dict(self): builds = self.poll(tree='builds[number,url]') if not builds: raise NoBuildData(repr(self)) builds = self._add_missing_builds(builds) builds = builds['builds'] last_build = self.poll(tree='lastBuild[number,url]')['lastBuild'] if builds and last_build and \ builds[0]['number'] != last_build['number']: builds = [last_build] + builds # FIXME SO how is this supposed to work if build is false-y? # I don't think that builds *can* be false here, so I don't # understand the test above. return dict((build["number"], build["url"]) for build in builds)
def get_build_by_params(self, build_params, order=1): first_build_number = self.get_first_buildnumber() last_build_number = self.get_last_buildnumber() if order != 1 and order != -1: raise ValueError( 'Direction should be ascending or descending (1/-1)') for number in range(first_build_number, last_build_number + 1)[::order]: build = self.get_build(number) if build.get_params() == build_params: return build raise NoBuildData( 'No build with such params {params}'.format(params=build_params))