def setStepStateStrings(self, stepid, state_strings): validation.verifyType(self.testcase, 'stepid', stepid, validation.IntValidator()) validation.verifyType(self.testcase, 'state_strings', state_strings, validation.ListValidator(validation.StringValidator())) self.stepStateStrings[stepid] = state_strings return defer.succeed(None)
def forget_about_it(self, name): validation.verifyType(self.testcase, 'scheduler name', name, validation.StringValidator()) if name not in self.schedulerIds: self.schedulerIds[name] = max( [0] + list(itervalues(self.schedulerIds))) + 1 return defer.succeed(self.schedulerIds[name])
def findChangeSourceId(self, name): validation.verifyType(self.testcase, 'changesource name', name, validation.StringValidator()) if name not in self.changesourceIds: self.changesourceIds[name] = max( [0] + list(itervalues(self.changesourceIds))) + 1 return defer.succeed(self.changesourceIds[name])
def setStepStateString(self, stepid, state_string): validation.verifyType(self.testcase, 'stepid', stepid, validation.IntValidator()) validation.verifyType(self.testcase, 'state_string', state_string, validation.StringValidator()) self.stepStateString[stepid] = state_string return defer.succeed(None)
def appendLog(self, logid, content): validation.verifyType(self.testcase, 'logid', logid, validation.IntValidator()) validation.verifyType(self.testcase, 'content', content, validation.StringValidator()) self.testcase.assertEqual(content[-1], u'\n') self.logs[logid]['content'].append(content) return defer.succeed(None)
def reclaimBuildRequests(self, brids, _reactor=reactor): validation.verifyType(self.testcase, 'brids', brids, validation.ListValidator(validation.IntValidator())) if not brids: defer.returnValue(True) return try: yield self.master.db.buildrequests.reclaimBuildRequests( brids=brids, _reactor=_reactor) except AlreadyClaimedError: defer.returnValue(False) self.claimedBuildRequests.update(set(brids)) defer.returnValue(True)
def claimBuildRequests(self, brids, claimed_at=None): validation.verifyType(self.testcase, 'brids', brids, validation.ListValidator(validation.IntValidator())) validation.verifyType(self.testcase, 'claimed_at', claimed_at, validation.NoneOk(validation.DateTimeValidator())) if not brids: return True try: yield self.master.db.buildrequests.claimBuildRequests( brids=brids, claimed_at=claimed_at) except AlreadyClaimedError: return False self.claimedBuildRequests.update(set(brids)) return True
def addStepURL(self, stepid, name, url): validation.verifyType(self.testcase, 'stepid', stepid, validation.IntValidator()) validation.verifyType(self.testcase, 'name', name, validation.StringValidator()) validation.verifyType(self.testcase, 'url', url, validation.StringValidator()) return defer.succeed(None)
def addBuild(self, builderid, buildrequestid, workerid): validation.verifyType(self.testcase, 'builderid', builderid, validation.IntValidator()) validation.verifyType(self.testcase, 'buildrequestid', buildrequestid, validation.IntValidator()) validation.verifyType(self.testcase, 'workerid', workerid, validation.IntValidator()) return defer.succeed((10, 1))
def finishStep(self, stepid, results, hidden): validation.verifyType(self.testcase, 'stepid', stepid, validation.IntValidator()) validation.verifyType(self.testcase, 'results', results, validation.IntValidator()) validation.verifyType(self.testcase, 'hidden', hidden, validation.BooleanValidator()) return defer.succeed(None)
def completeBuildRequests(self, brids, results, complete_at=None, _reactor=reactor): validation.verifyType(self.testcase, 'brids', brids, validation.ListValidator(validation.IntValidator())) validation.verifyType(self.testcase, 'results', results, validation.IntValidator()) validation.verifyType(self.testcase, 'complete_at', complete_at, validation.NoneOk(validation.DateTimeValidator())) return defer.succeed(True)
def addStepURL(self, stepid, name, url): validation.verifyType(self.testcase, 'stepid', stepid, validation.IntValidator()) validation.verifyType(self.testcase, 'name', name, validation.StringValidator()) validation.verifyType(self.testcase, 'url', url, validation.StringValidator()) self.stepUrls.setdefault(stepid, []).append((name, url)) return defer.succeed(None)
def completeTestResultSet(self, test_result_setid, tests_passed=None, tests_failed=None): validation.verifyType(self.testcase, 'test_result_setid', test_result_setid, validation.IntValidator()) validation.verifyType(self.testcase, 'tests_passed', tests_passed, validation.NoneOk(validation.IntValidator())) validation.verifyType(self.testcase, 'tests_failed', tests_failed, validation.NoneOk(validation.IntValidator())) yield self.master.db.test_result_sets.completeTestResultSet(test_result_setid, tests_passed, tests_failed)
def newLog(self, stepid, name, type): validation.verifyType(self.testcase, 'stepid', stepid, validation.IntValidator()) validation.verifyType(self.testcase, 'name', name, validation.StringValidator()) validation.verifyType(self.testcase, 'type', type, validation.IdentifierValidator(1)) logid = max([0] + self.logs.keys()) + 1 self.logs[logid] = dict(name=name, type=type, content=[], finished=False) return defer.succeed(logid)
def setBuildProperty(self, buildid, name, value, source): validation.verifyType(self.testcase, 'buildid', buildid, validation.IntValidator()) validation.verifyType(self.testcase, 'name', name, validation.StringValidator()) try: json.dumps(value) except (TypeError, ValueError): self.testcase.fail("Value for %s is not JSON-able" % name) validation.verifyType(self.testcase, 'source', source, validation.StringValidator()) return defer.succeed(None)
def addURL(self, stepid, name, url, _racehook=None): validation.verifyType(self.t, 'stepid', stepid, validation.IntValidator()) validation.verifyType(self.t, 'name', name, validation.IdentifierValidator(50)) validation.verifyType(self.t, 'url', url, validation.StringValidator()) b = self.steps.get(stepid) if b: urls = json.loads(b['urls_json']) url_item = dict(name=name, url=url) if url_item not in urls: urls.append(url_item) b['urls_json'] = json.dumps(urls) return defer.succeed(None)
def unclaimExpiredRequests(self, old, _reactor=reactor): validation.verifyType( self.testcase, "old", old, validation.IntValidator()) return defer.succeed(None)
def findSchedulerId(self, name): validation.verifyType(self.testcase, 'scheduler name', name, validation.StringValidator()) if name not in self.schedulerIds: self.schedulerIds[name] = max([0] + self.schedulerIds.values()) + 1 return defer.succeed(self.schedulerIds[name])
def unclaimBuildRequests(self, brids): validation.verifyType(self.testcase, 'brids', brids, validation.ListValidator(validation.IntValidator())) self.claimedBuildRequests.difference_update(set(brids)) if brids: yield self.master.db.buildrequests.unclaimBuildRequests(brids)
def findChangeSourceId(self, name): validation.verifyType(self.testcase, 'changesource name', name, validation.StringValidator()) if name not in self.changesourceIds: self.changesourceIds[name] = max([0] + self.changesourceIds.values()) + 1 return defer.succeed(self.changesourceIds[name])
def findBuildslaveId(self, name): validation.verifyType(self.testcase, 'buildslave name', name, validation.IdentifierValidator(50)) # this needs to actually get inserted into the db (fake or real) since # getBuildslave will get called later return self.master.db.buildslaves.findBuildslaveId(name)
def finishBuild(self, buildid, results): validation.verifyType(self.testcase, 'buildid', buildid, validation.IntValidator()) validation.verifyType(self.testcase, 'results', results, validation.IntValidator()) return defer.succeed(None)
def setBuildStateString(self, buildid, state_string): validation.verifyType(self.testcase, 'buildid', buildid, validation.IntValidator()) validation.verifyType(self.testcase, 'state_string', state_string, validation.StringValidator()) return defer.succeed(None)
def addStep(self, buildid, name): validation.verifyType(self.testcase, 'buildid', buildid, validation.IntValidator()) validation.verifyType(self.testcase, 'name', name, validation.IdentifierValidator(50)) return defer.succeed((10, 1, name))
def addTestResultSet(self, builderid, buildid, stepid, description, category, value_unit): validation.verifyType(self.testcase, 'builderid', builderid, validation.IntValidator()) validation.verifyType(self.testcase, 'buildid', buildid, validation.IntValidator()) validation.verifyType(self.testcase, 'stepid', stepid, validation.IntValidator()) validation.verifyType(self.testcase, 'description', description, validation.StringValidator()) validation.verifyType(self.testcase, 'category', category, validation.StringValidator()) validation.verifyType(self.testcase, 'value_unit', value_unit, validation.StringValidator()) test_result_setid = \ yield self.master.db.test_result_sets.addTestResultSet(builderid, buildid, stepid, description, category, value_unit) return test_result_setid
def finishLog(self, logid): validation.verifyType(self.testcase, 'logid', logid, validation.IntValidator()) self.logs[logid]['finished'] = True return defer.succeed(None)
def findBuilderId(self, name): validation.verifyType(self.testcase, 'builder name', name, validation.StringValidator()) return self.master.db.builders.findBuilderId(name)
def generateNewBuildEvent(self, buildid): validation.verifyType(self.testcase, 'buildid', buildid, validation.IntValidator()) return defer.succeed(None)
def startStep(self, stepid): validation.verifyType(self.testcase, 'stepid', stepid, validation.IntValidator()) return defer.succeed(None)
def compressLog(self, logid): validation.verifyType(self.testcase, 'logid', logid, validation.IntValidator()) return defer.succeed(None)
def findWorkerId(self, name): validation.verifyType(self.testcase, 'worker name', name, validation.IdentifierValidator(50)) # this needs to actually get inserted into the db (fake or real) since # getWorker will get called later return self.master.db.workers.findWorkerId(name)
def findBuilderId(self, name): validation.verifyType(self.testcase, 'builder name', name, validation.StringValidator()) if name not in self.builderIds: self.builderIds[name] = max([0] + self.builderIds.values()) + 1 return defer.succeed(self.builderIds[name])
def setBuildData(self, buildid, name, value, source): validation.verifyType(self.testcase, 'buildid', buildid, validation.IntValidator()) validation.verifyType(self.testcase, 'name', name, validation.StringValidator()) validation.verifyType(self.testcase, 'value', value, validation.BinaryValidator()) validation.verifyType(self.testcase, 'source', source, validation.StringValidator()) yield self.master.db.build_data.setBuildData(buildid, name, value, source)