Example #1
0
    def test_get_artifacts_to_sync(self):
        project = self.create_project()
        build = self.create_build(project=project)
        job = self.create_job(build=build)

        plan = self.create_plan(project)
        self.create_step(plan, implementation='test', order=0)
        self.create_job_plan(job, plan)

        phase = self.create_jobphase(job)
        step = self.create_jobstep(phase, status=Status.finished, result=Result.passed)

        make_AS_file = lambda: FileData({
            'filename': 'foo',
            'storage': 'changes.storage.artifactstore.ArtifactStoreFileStorage'})

        artstore_junit = self.create_artifact(step, 'artifactstore/foo/junit.xml',
                                              file=make_AS_file())
        artstore_junit2 = self.create_artifact(step, 'artifactstore/junit.xml',
                                               file=make_AS_file())
        artstore_coverage = self.create_artifact(step, 'artifactstore/coverage.xml',
                                                 file=make_AS_file())
        other_junit = self.create_artifact(step, 'bar/junit.xml')
        other_manifest = self.create_artifact(step, 'manifest.json')
        arts = Artifact.query.filter(Artifact.step_id == step.id).all()

        assert (sorted(_get_artifacts_to_sync(arts, prefer_artifactstore=True)) ==
                sorted([artstore_junit, artstore_junit2, artstore_coverage, other_manifest]))

        assert (sorted(_get_artifacts_to_sync(arts, prefer_artifactstore=False)) ==
                sorted([artstore_coverage, other_junit, other_manifest]))
    def test_get_artifacts_to_sync(self):
        artifact_manager = mock.Mock()
        artifact_manager.can_process.side_effect = lambda name: not name.endswith(
            'service.log')

        project = self.create_project()
        build = self.create_build(project=project)
        job = self.create_job(build=build)

        plan = self.create_plan(project)
        self.create_step(plan, implementation='test', order=0)
        self.create_job_plan(job, plan)

        phase = self.create_jobphase(job)
        step = self.create_jobstep(phase,
                                   status=Status.finished,
                                   result=Result.passed)

        def make_AS_file():
            return FileData({
                'filename':
                'foo',
                'storage':
                'changes.storage.artifactstore.ArtifactStoreFileStorage'
            })

        artstore_junit = self.create_artifact(step,
                                              'artifactstore/foo/junit.xml',
                                              file=make_AS_file())
        artstore_junit2 = self.create_artifact(step,
                                               'artifactstore/junit.xml',
                                               file=make_AS_file())
        artstore_coverage = self.create_artifact(step,
                                                 'artifactstore/coverage.xml',
                                                 file=make_AS_file())
        other_junit = self.create_artifact(step, 'bar/junit.xml')
        other_manifest = self.create_artifact(step, 'manifest.json')
        # artifact manager will say we don't process this artifact
        ignored_art = self.create_artifact(step, 'foo/service.log')
        arts = Artifact.query.filter(Artifact.step_id == step.id).all()

        assert (sorted(
            _get_artifacts_to_sync(arts,
                                   artifact_manager,
                                   prefer_artifactstore=True)) == sorted([
                                       artstore_junit, artstore_junit2,
                                       artstore_coverage, other_manifest
                                   ]))

        assert (sorted(
            _get_artifacts_to_sync(arts,
                                   artifact_manager,
                                   prefer_artifactstore=False)) == sorted([
                                       artstore_coverage, other_junit,
                                       other_manifest
                                   ]))
Example #3
0
    def test_get_artifacts_to_sync(self):
        project = self.create_project()
        build = self.create_build(project=project)
        job = self.create_job(build=build)

        plan = self.create_plan(project)
        self.create_step(plan, implementation='test', order=0)
        self.create_job_plan(job, plan)

        phase = self.create_jobphase(job)
        step = self.create_jobstep(phase,
                                   status=Status.finished,
                                   result=Result.passed)

        make_AS_file = lambda: FileData({
            'filename':
            'foo',
            'storage':
            'changes.storage.artifactstore.ArtifactStoreFileStorage'
        })

        artstore_junit = self.create_artifact(step,
                                              'artifactstore/foo/junit.xml',
                                              file=make_AS_file())
        artstore_junit2 = self.create_artifact(step,
                                               'artifactstore/junit.xml',
                                               file=make_AS_file())
        artstore_coverage = self.create_artifact(step,
                                                 'artifactstore/coverage.xml',
                                                 file=make_AS_file())
        other_junit = self.create_artifact(step, 'bar/junit.xml')
        other_manifest = self.create_artifact(step, 'manifest.json')
        arts = Artifact.query.filter(Artifact.step_id == step.id).all()

        assert (sorted(_get_artifacts_to_sync(
            arts, prefer_artifactstore=True)) == sorted([
                artstore_junit, artstore_junit2, artstore_coverage,
                other_manifest
            ]))

        assert (sorted(_get_artifacts_to_sync(
            arts, prefer_artifactstore=False)) == sorted(
                [artstore_coverage, other_junit, other_manifest]))
Example #4
0
    def test_get_artifacts_to_sync(self):
        artifact_manager = mock.Mock()
        artifact_manager.can_process.side_effect = lambda name: name != 'service.log'

        project = self.create_project()
        build = self.create_build(project=project)
        job = self.create_job(build=build)

        plan = self.create_plan(project)
        self.create_step(plan, implementation='test', order=0)
        self.create_job_plan(job, plan)

        phase = self.create_jobphase(job)
        step = self.create_jobstep(phase, status=Status.finished, result=Result.passed)

        def make_AS_file():
            return FileData({
                'filename': 'foo',
                'storage': 'changes.storage.artifactstore.ArtifactStoreFileStorage'})

        artstore_junit = self.create_artifact(step, 'artifactstore/foo/junit.xml',
                                              file=make_AS_file())
        artstore_junit2 = self.create_artifact(step, 'artifactstore/junit.xml',
                                               file=make_AS_file())
        artstore_coverage = self.create_artifact(step, 'artifactstore/coverage.xml',
                                                 file=make_AS_file())
        other_junit = self.create_artifact(step, 'bar/junit.xml')
        other_manifest = self.create_artifact(step, 'manifest.json')
        # artifact manager will say we don't process this artifact
        ignored_art = self.create_artifact(step, 'foo/service.log')
        arts = Artifact.query.filter(Artifact.step_id == step.id).all()

        assert (sorted(_get_artifacts_to_sync(arts, artifact_manager, prefer_artifactstore=True)) ==
                sorted([artstore_junit, artstore_junit2, artstore_coverage, other_manifest]))

        assert (sorted(_get_artifacts_to_sync(arts, artifact_manager, prefer_artifactstore=False)) ==
                sorted([artstore_coverage, other_junit, other_manifest]))