Exemple #1
0
    def test_with_unaffected_targets_incomplete_targets(self):
        project = self.create_project()
        plan = self.create_plan(project)

        parent_revision = self.create_revision(repository=project.repository)
        parent_source = self.create_source(project, revision_sha=parent_revision.sha)
        parent_build = self.create_build(project, source=parent_source, status=Status.finished)
        parent_job = self.create_job(parent_build)
        self.create_job_plan(job=parent_job, plan=plan)
        self.create_target(parent_job, jobstep=None, name='//target1:test', result=Result.passed)
        self.create_target(parent_job, jobstep=None, name='//other:test', result=Result.passed)

        revision = self.create_revision(parents=[parent_revision.sha], repository=project.repository)
        source = self.create_source(project, revision_sha=revision.sha)
        build = self.create_build(project, source=source, status=Status.finished, result=Result.passed)
        self.create_job(build, result=Result.passed)
        self.create_job(build, result=Result.passed)
        job = self.create_job(build, result=Result.passed)
        self.create_job_plan(job=job, plan=plan)

        target1 = self.create_target(job, jobstep=None, result_source=ResultSource.from_parent, name='//target1:test')
        target2 = self.create_target(job, jobstep=None, result_source=ResultSource.from_parent, name='//target2:test')

        create_or_update_revision_result(build.source.revision_sha, build.project_id, propagation_limit=0)

        revision_result = RevisionResult.query.filter(
            RevisionResult.project_id == build.project_id,
            RevisionResult.revision_sha == build.source.revision_sha,
        ).first()

        assert revision_result is not None
        assert revision_result.build == build
        assert revision_result.result is Result.unknown
        assert target1.result is Result.passed
        assert target2.result is Result.unknown
Exemple #2
0
    def test_no_unaffected_targets(self):
        build = self.create_build(self.create_project(), status=Status.finished, result=Result.passed)
        self.create_job(build, result=Result.passed)
        self.create_job(build, result=Result.passed)
        self.create_job(build, result=Result.passed)

        create_or_update_revision_result(build.source.revision_sha, build.project_id, propagation_limit=0)

        revision_result = RevisionResult.query.filter(
            RevisionResult.project_id == build.project_id,
            RevisionResult.revision_sha == build.source.revision_sha,
        ).first()

        assert revision_result is not None
        assert revision_result.build == build
        assert revision_result.result is Result.passed
Exemple #3
0
    def test_with_propagation_no_count(self):
        project = self.create_project()

        revision = self.create_revision(repository=project.repository)
        source = self.create_source(project, revision_sha=revision.sha)
        build = self.create_build(project, source=source, status=Status.finished, result=Result.passed)

        child_revision = self.create_revision(repository=project.repository, parents=[revision.sha])

        with mock.patch('changes.listeners.revision_result.create_or_update_revision_result') as mocked:
            create_or_update_revision_result(build.source.revision_sha, build.project_id, propagation_limit=0)

        revision_result = RevisionResult.query.filter(
            RevisionResult.project_id == build.project_id,
            RevisionResult.revision_sha == build.source.revision_sha,
        ).first()

        assert revision_result is not None
        assert revision_result.build == build
        assert revision_result.result is Result.passed

        assert mocked.call_count == 0