def run_fake_single_build(self, buildResult, verifiedScore): gsp = GerritStatusPush('host.example.com', 'username', reviewCB=testReviewCB) self.run_prepare_gsp(gsp) fakeSCR = Mock() gsp.sendCodeReview = fakeSCR build = FakeBuildStatus(name="build") build.getProperty = lambda prop: self.TEST_PROPS.get(prop) gsp.buildFinished('dummyBuilder', build, buildResult) fakeSCR.assert_called_once_with(self.TEST_PROJECT, self.TEST_REVISION, str({'name': 'dummyBuilder', 'result': buildResult}), verifiedScore, 0)
def _get_prepared_gsp(*args, **kwargs): """ get an instance of GerritStatusPush prepared for testing Hostname and username are "hardcoded", the rest is taken from the provided parameters. """ gsp = GerritStatusPush('host.example.com', 'username', *args, **kwargs) gsp.master = fakemaster.make_master() gsp.master_status = gsp.master.status gsp.sendCodeReview = Mock() return gsp
def test_gerrit_ssh_cmd(self): kwargs = { 'server': 'example.com', 'username': '******', } without_identity = GerritStatusPush(**kwargs) expected1 = ['ssh', '*****@*****.**', '-p', '29418', 'gerrit', 'foo'] self.assertEqual(expected1, without_identity._gerritCmd('foo')) with_identity = GerritStatusPush( identity_file='/path/to/id_rsa', **kwargs) expected2 = [ 'ssh', '-i', '/path/to/id_rsa', '*****@*****.**', '-p', '29418', 'gerrit', 'foo', ] self.assertEqual(expected2, with_identity._gerritCmd('foo'))
def test_gerrit_ssh_cmd(self): kwargs = { 'server': 'example.com', 'username': '******', } without_identity = GerritStatusPush(**kwargs) expected1 = [ 'ssh', '*****@*****.**', '-p', '29418', 'gerrit', 'foo' ] self.assertEqual(expected1, without_identity._gerritCmd('foo')) with_identity = GerritStatusPush(identity_file='/path/to/id_rsa', **kwargs) expected2 = [ 'ssh', '-i', '/path/to/id_rsa', '*****@*****.**', '-p', '29418', 'gerrit', 'foo', ] self.assertEqual(expected2, with_identity._gerritCmd('foo'))
def check_notify_flag_in_ssh_command(self, spawn_process, notify, expected_value): gsp = yield GerritStatusPush('host.example.com', 'username', reviewCB=testReviewCB, notify=notify) gsp.master = yield fakemaster.make_master() gsp.master_status = gsp.master.status gsp.getCachedVersion = yield Mock(return_value="2.9") yield self.run_fake_single_build(gsp, SUCCESS) ssh_args = spawn_process.call_args[0][2] ssh_msg = ' '.join(ssh_args) assert expected_value in ssh_msg, "Flag value wrong or not present"
def run_fake_summary_build(self, buildResults, finalResult, resultText, verifiedScore): gsp = GerritStatusPush('host.example.com', 'username', summaryCB=testSummaryCB) buildpairs = [] i = 0 for i in xrange(len(buildResults)): buildResult = buildResults[i] builder = Mock() build = FakeBuildStatus() builder.getBuild.return_value = build builder.name = "Builder-%d" % i builder.getName.return_value = builder.name build.results = buildResult build.finished = True build.reason = "testReason" build.getBuilder.return_value = builder build.getResults.return_value = build.results build.getText.return_value = ['buildText'] build.getProperty = lambda prop: self.TEST_PROPS.get(prop) buildpairs.append((builder, build)) def fakeGetBuilder(buildername): # e.g. Builder-5 will be buildpairs[5][0] return buildpairs[int(buildername.split("-")[1])][0] self.run_prepare_gsp(gsp) gsp.master_status.getBuilder = fakeGetBuilder gsp.master_status.getURLForThing = Mock() gsp.master_status.getURLForThing.return_value = self.THING_URL gsp.master.db = fakedb.FakeDBConnector(gsp.master, self) fakedata = [ fakedb.Master(id=92), fakedb.Buildslave(id=13, name='sl'), fakedb.Buildset(id=99, results=finalResult, reason="testReason"), ] breqid = 1000 for (builder, build) in buildpairs: fakedata.append(fakedb.BuildRequest(id=breqid, buildsetid=99, buildername=builder.name)) fakedata.append(fakedb.Build(number=0, buildrequestid=breqid, masterid=92, buildslaveid=13)) breqid = breqid + 1 gsp.master.db.insertTestData(fakedata) fakeSCR = Mock() gsp.sendCodeReview = fakeSCR d = gsp._buildsetComplete('buildset.99.complete', dict(bsid=99, result=SUCCESS)) @d.addCallback def check(_): info = [] for i in xrange(len(buildResults)): info.append({'name': "Builder-%d" % i, 'result': buildResults[i], 'resultText': resultText[i], 'text': 'buildText', 'url': self.THING_URL}) fakeSCR.assert_called_once_with(self.TEST_PROJECT, self.TEST_REVISION, str(info), verifiedScore, 0) return d
def __init__(self, notify="OWNER", **kwargs): self.gerrit_notify = notify GerritStatusPush.__init__(self, **kwargs)
def run_fake_summary_build(self, buildResults, finalResult, resultText, verifiedScore): gsp = GerritStatusPush('host.example.com', 'username', summaryCB=testSummaryCB) buildpairs = [] i = 0 for i in xrange(len(buildResults)): buildResult = buildResults[i] builder = Mock() build = FakeBuildStatus() builder.getBuild.return_value = build builder.name = "Builder-%d" % i builder.getName.return_value = builder.name build.results = buildResult build.finished = True build.reason = "testReason" build.getBuilder.return_value = builder build.getResults.return_value = build.results build.getText.return_value = ['buildText'] build.getProperty = lambda prop: self.TEST_PROPS.get(prop) buildpairs.append((builder, build)) def fakeGetBuilder(buildername): # e.g. Builder-5 will be buildpairs[5][0] return buildpairs[int(buildername.split("-")[1])][0] self.run_prepare_gsp(gsp) gsp.master_status.getBuilder = fakeGetBuilder gsp.master_status.getURLForThing = Mock() gsp.master_status.getURLForThing.return_value = self.THING_URL gsp.master.db = fakedb.FakeDBConnector(self) fakedata = [fakedb.SourceStampSet(id=127), fakedb.Buildset(id=99, sourcestampsetid=127, results=finalResult, reason="testReason")] breqid = 1000 for (builder, build) in buildpairs: fakedata.append(fakedb.BuildRequest(id=breqid, buildsetid=99, buildername=builder.name)) fakedata.append(fakedb.Build(number=0, brid=breqid)) breqid = breqid + 1 gsp.master.db.insertTestData(fakedata) fakeSCR = Mock() gsp.sendCodeReview = fakeSCR d = gsp._buildsetComplete(99, finalResult) @d.addCallback def check(_): info = [] for i in xrange(len(buildResults)): info.append({'name': "Builder-%d" % i, 'result': buildResults[i], 'resultText': resultText[i], 'text': 'buildText', 'url': self.THING_URL}) fakeSCR.assert_called_once_with(self.TEST_PROJECT, self.TEST_REVISION, str(info), verifiedScore, 0) return d