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 ]))
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: 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]))