def test_autoretry(): flexmock(CoprBuildHandler).should_receive("run_job").and_raise( CoprRequestException ).once() # verify that retry is called automatically flexmock(Task).should_receive("retry").and_raise(CoprRequestException).once() with pytest.raises(CoprRequestException): run_copr_build_handler({}, {}, {})
def test_pr_embedded_command_handler(mock_pr_comment_functionality, pr_embedded_command_comment_event, comments_list): flexmock(PullRequestModel).should_receive("get_or_create").with_args( pr_id=9, namespace="packit-service", repo_name="hello-world", project_url="https://github.com/packit-service/hello-world", ).and_return( flexmock(id=9, job_config_trigger_type=JobConfigTriggerType.pull_request)) pr_embedded_command_comment_event["comment"]["body"] = comments_list flexmock(CoprBuildJobHelper).should_receive("run_copr_build").and_return( TaskResults(success=True, details={})) flexmock(GithubProject, get_files="foo.spec") flexmock(GithubProject).should_receive("is_private").and_return(False) flexmock(Signature).should_receive("apply_async").once() processing_results = SteveJobs().process_message( pr_embedded_command_comment_event) event_dict, job, job_config, package_config = get_parameters_from_results( processing_results) results = run_copr_build_handler( package_config=package_config, event=event_dict, job_config=job_config, ) assert first_dict_value(results["job"])["success"]
def test_rebuild_failed( mock_pr_comment_functionality, pr_embedded_command_comment_event ): flexmock(PullRequestModel).should_receive("get_or_create").with_args( pr_id=9, namespace="packit-service", repo_name="hello-world", project_url="https://github.com/packit-service/hello-world", ).and_return( flexmock(id=9, job_config_trigger_type=JobConfigTriggerType.pull_request) ) pr_embedded_command_comment_event["comment"]["body"] = "/packit rebuild-failed" flexmock(CoprBuildJobHelper).should_receive("run_copr_build").and_return( TaskResults(success=True, details={}) ) flexmock(GithubProject, get_files="foo.spec") flexmock(GithubProject).should_receive("is_private").and_return(False) pr = flexmock(head_commit="12345") flexmock(GithubProject).should_receive("get_pr").and_return(pr) comment = flexmock() flexmock(pr).should_receive("get_comment").and_return(comment) flexmock(comment).should_receive("add_reaction").with_args("+1").once() flexmock(copr_build).should_receive("get_valid_build_targets").and_return(set()) model = flexmock(CoprBuildModel, status="failed", target="target") flexmock(model).should_receive("get_all_by").and_return(flexmock()) flexmock(AbstractForgeIndependentEvent).should_receive( "get_all_build_failed_targets" ).and_return({"target"}) flexmock(CoprBuildJobHelper).should_receive("report_status_to_build").with_args( description=TASK_ACCEPTED, state=BaseCommitStatus.pending, url="", ).once() flexmock(Signature).should_receive("apply_async").once() flexmock(Pushgateway).should_receive("push").twice().and_return() processing_results = SteveJobs().process_message(pr_embedded_command_comment_event) event_dict, job, job_config, package_config = get_parameters_from_results( processing_results ) assert event_dict["targets_override"] == ["target"] assert json.dumps(event_dict) results = run_copr_build_handler( package_config=package_config, event=event_dict, job_config=job_config, ) assert first_dict_value(results["job"])["success"]
def test_check_rerun_release_copr_build_handler( mock_release_functionality, check_rerun_event_copr_build ): flexmock(CoprBuildJobHelper).should_receive("run_copr_build").and_return( TaskResults(success=True, details={}) ).once() flexmock(GithubProject).should_receive("get_files").and_return(["foo.spec"]) flexmock(GithubProject).should_receive("get_web_url").and_return( "https://github.com/the-namespace/the-repo" ) flexmock(GithubProject).should_receive("is_private").and_return(False) flexmock(copr_build).should_receive("get_valid_build_targets").and_return( {"fedora-rawhide-x86_64", "fedora-34-x86_64"} ) flexmock(StatusReporterGithubChecks).should_receive("set_status").with_args( state=BaseCommitStatus.pending, description=TASK_ACCEPTED, check_name="rpm-build:fedora-rawhide-x86_64", url="", links_to_external_services=None, markdown_content=None, ).once() flexmock(Signature).should_receive("apply_async").once() flexmock(Pushgateway).should_receive("push").twice().and_return() processing_results = SteveJobs().process_message(check_rerun_event_copr_build) event_dict, job, job_config, package_config = get_parameters_from_results( processing_results ) assert event_dict["targets_override"] == ["fedora-rawhide-x86_64"] assert json.dumps(event_dict) results = run_copr_build_handler( package_config=package_config, event=event_dict, job_config=job_config, ) assert first_dict_value(results["job"])["success"]