Esempio n. 1
0
    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)
Esempio n. 2
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
Esempio n. 3
0
    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)
Esempio n. 4
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
Esempio n. 5
0
    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'))
Esempio n. 6
0
    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'))
Esempio n. 7
0
    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"
Esempio n. 8
0
    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
Esempio n. 9
0
    def __init__(self, notify="OWNER", **kwargs):
        self.gerrit_notify = notify

        GerritStatusPush.__init__(self, **kwargs)
    def __init__(self, notify="OWNER", **kwargs):
        self.gerrit_notify = notify

        GerritStatusPush.__init__(self, **kwargs)
Esempio n. 11
0
    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