Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
 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])
Ejemplo n.º 7
0
 def test_StringValidator(self):
     self.doValidationTest(validation.StringValidator(),
                           good=[
                               u"unicode only"
     ], bad=[
                               None, "bytestring"
     ])
Ejemplo n.º 8
0
 def setBuildStateStrings(self, buildid, state_strings):
     validation.verifyType(self.testcase, 'buildid', buildid,
                           validation.IntValidator())
     validation.verifyType(
         self.testcase, 'state_strings', state_strings,
         validation.ListValidator(validation.StringValidator()))
     return defer.succeed(None)
Ejemplo n.º 9
0
 def setStepStateString(self, stepid, state_string):
     validation.verifyType(self.t, 'state_string', state_string,
                           validation.StringValidator())
     b = self.steps.get(stepid)
     if b:
         b['state_string'] = state_string
     return defer.succeed(None)
Ejemplo n.º 10
0
    def addStep(self, buildid, name, state_string):
        validation.verifyType(self.t, 'state_string', state_string,
                              validation.StringValidator())
        validation.verifyType(self.t, 'name', name,
                              validation.IdentifierValidator(50))
        # get a unique name and number
        build_steps = [
            r for r in self.steps.values() if r['buildid'] == buildid
        ]
        if build_steps:
            number = max([r['number'] for r in build_steps]) + 1
            names = {r['name'] for r in build_steps}
            if name in names:
                i = 1
                while '{}_{}'.format(name, i) in names:
                    i += 1
                name = '{}_{}'.format(name, i)
        else:
            number = 0

        id = self._newId()
        self.steps[id] = {
            'id': id,
            'buildid': buildid,
            'number': number,
            'name': name,
            'started_at': None,
            'complete_at': None,
            'results': None,
            'state_string': state_string,
            'urls_json': '[]',
            'hidden': False
        }

        return defer.succeed((id, number, name))
Ejemplo n.º 11
0
 def setBuildStateString(self, buildid, state_string):
     validation.verifyType(self.t, 'state_string', state_string,
                           validation.StringValidator())
     b = self.builds.get(buildid)
     if b:
         b['state_string'] = state_string
     return defer.succeed(None)
Ejemplo n.º 12
0
 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)
Ejemplo n.º 13
0
 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])
Ejemplo n.º 14
0
 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)
Ejemplo n.º 15
0
 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)
Ejemplo n.º 16
0
 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)
Ejemplo n.º 17
0
 def appendLog(self, logid, content):
     validation.verifyType(self.t, 'logid', logid,
                           validation.IntValidator())
     validation.verifyType(self.t, 'content', content,
                           validation.StringValidator())
     self.t.assertEqual(content[-1], '\n')
     content = content[:-1].split('\n')
     lines = self.log_lines[logid]
     lines.extend(content)
     num_lines = self.logs[logid]['num_lines'] = len(lines)
     return defer.succeed((num_lines - len(content), num_lines - 1))
Ejemplo n.º 18
0
 def test_Selector(self):
     sel = validation.Selector()
     sel.add(lambda x: x == 'int', validation.IntValidator())
     sel.add(lambda x: x == 'str', validation.StringValidator())
     self.doValidationTest(sel,
                           good=[
                               ('int', 1),
                               ('str', u'hi'),
                           ], bad=[
                               ('int', u'hi'),
                               ('str', 1),
                               ('float', 1.0),
                           ])
Ejemplo n.º 19
0
 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)
Ejemplo n.º 20
0
 def test_DictValidator(self):
     self.doValidationTest(validation.DictValidator(
         a=validation.BooleanValidator(),
         b=validation.StringValidator(),
         optionalNames=['b']),
         good=[
             {'a': True},
             {'a': True, 'b': u'xyz'},
     ],
         bad=[
             None, 1, "hi",
             {},
             {'a': 1},
             {'a': 1, 'b': u'xyz'},
             {'a': True, 'b': 999},
             {'a': True, 'b': u'xyz', 'c': 'extra'},
     ])
Ejemplo n.º 21
0
 def addBuild(self, builderid, buildrequestid, workerid, masterid,
              state_string):
     validation.verifyType(self.t, 'state_string', state_string,
                           validation.StringValidator())
     id = self._newId()
     number = max([0] + [
         r['number']
         for r in self.builds.values() if r['builderid'] == builderid
     ]) + 1
     self.builds[id] = dict(id=id,
                            number=number,
                            buildrequestid=buildrequestid,
                            builderid=builderid,
                            workerid=workerid,
                            masterid=masterid,
                            state_string=state_string,
                            started_at=self.reactor.seconds(),
                            complete_at=None,
                            results=None)
     return defer.succeed((id, number))
Ejemplo n.º 22
0
 def findBuilderId(self, name):
     validation.verifyType(self.testcase, 'builder name', name,
                           validation.StringValidator())
     return self.master.db.builders.findBuilderId(name)
Ejemplo n.º 23
0
 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])