예제 #1
0
    def test_get_build_failure_reasons_multiple_failures(self):
        project = self.create_project(name="test", slug="project-slug")
        build = self.create_build(project, result=Result.failed, target="D1", label="Some sweet diff")
        job = self.create_job(build=build, result=Result.failed)
        jobphase = self.create_jobphase(job)
        jobstep = self.create_jobstep(jobphase, status=Status.finished, result=Result.failed)
        for reason in ("missing_tests", "timeout", "aborted"):
            db.session.add(
                FailureReason(
                    step_id=jobstep.id, job_id=job.id, build_id=build.id, project_id=project.id, reason=reason
                )
            )
        jobstep2 = self.create_jobstep(jobphase, status=Status.finished, result=Result.failed)
        for reason in ("timeout", "insufficient_politeness"):
            db.session.add(
                FailureReason(
                    step_id=jobstep2.id, job_id=job.id, build_id=build.id, project_id=project.id, reason=reason
                )
            )
        jobstep3 = self.create_jobstep(
            jobphase, status=Status.finished, result=Result.infra_failed, replacement_id=jobstep.id
        )
        # shouldn't be included because jobstep3 is replaced
        db.session.add(
            FailureReason(
                step_id=jobstep3.id, job_id=job.id, build_id=build.id, project_id=project.id, reason="infra_reasons"
            )
        )
        db.session.commit()

        self.assertEquals(
            _get_build_failure_reasons(build), ["aborted", "insufficient_politeness", "missing_tests", "timeout"]
        )
예제 #2
0
    def test_get_build_failure_reasons_multiple_failures(self):
        project = self.create_project(name='test', slug='project-slug')
        build = self.create_build(project,
                                  result=Result.failed,
                                  target='D1',
                                  label='Some sweet diff')
        job = self.create_job(build=build, result=Result.failed)
        jobphase = self.create_jobphase(job)
        jobstep = self.create_jobstep(jobphase,
                                      status=Status.finished,
                                      result=Result.failed)
        for reason in ('missing_tests', 'timeout', 'aborted'):
            db.session.add(
                FailureReason(step_id=jobstep.id,
                              job_id=job.id,
                              build_id=build.id,
                              project_id=project.id,
                              reason=reason))
        jobstep2 = self.create_jobstep(jobphase,
                                       status=Status.finished,
                                       result=Result.failed)
        for reason in ('timeout', 'insufficient_politeness'):
            db.session.add(
                FailureReason(step_id=jobstep2.id,
                              job_id=job.id,
                              build_id=build.id,
                              project_id=project.id,
                              reason=reason))
        db.session.commit()

        self.assertEquals(
            _get_build_failure_reasons(build),
            ['aborted', 'insufficient_politeness', 'missing_tests', 'timeout'])
예제 #3
0
 def test_get_build_failure_reasons_no_failures(self):
     project = self.create_project(name='test', slug='project-slug')
     build = self.create_build(project,
                               result=Result.passed,
                               target='D1',
                               label='Some sweet diff')
     self.assertEquals(_get_build_failure_reasons(build), [])
예제 #4
0
    def test_get_build_failure_reasons_multiple_failures(self):
        project = self.create_project(name='test', slug='project-slug')
        build = self.create_build(project, result=Result.failed, target='D1',
                                  label='Some sweet diff')
        job = self.create_job(build=build, result=Result.failed)
        jobphase = self.create_jobphase(job)
        jobstep = self.create_jobstep(jobphase, status=Status.finished, result=Result.failed)
        for reason in ('missing_tests', 'timeout', 'aborted'):
            db.session.add(FailureReason(step_id=jobstep.id, job_id=job.id, build_id=build.id, project_id=project.id,
                                         reason=reason))
        jobstep2 = self.create_jobstep(jobphase, status=Status.finished, result=Result.failed)
        for reason in ('timeout', 'insufficient_politeness'):
            db.session.add(FailureReason(step_id=jobstep2.id, job_id=job.id, build_id=build.id, project_id=project.id,
                                         reason=reason))
        db.session.commit()

        self.assertEquals(_get_build_failure_reasons(build),
                          ['aborted', 'insufficient_politeness', 'missing_tests', 'timeout'])
예제 #5
0
 def test_get_build_failure_reasons_no_failures(self):
     project = self.create_project(name='test', slug='project-slug')
     build = self.create_build(project, result=Result.passed, target='D1',
                               label='Some sweet diff')
     self.assertEquals(_get_build_failure_reasons(build), [])
예제 #6
0
 def test_get_build_failure_reasons_no_failures(self):
     project = self.create_project(name="test", slug="project-slug")
     build = self.create_build(project, result=Result.passed, target="D1", label="Some sweet diff")
     self.assertEquals(_get_build_failure_reasons(build), [])