Example #1
0
def test_get_project_prs(clean_before_and_after, a_copr_build_for_pr):
    prs_a = GitProjectModel.get_project_prs(0, 10, "github.com",
                                            "the-namespace", "the-repo-name")
    assert prs_a is not None
    assert len(prs_a) == 1
    assert prs_a[
        0].id is not None  # cant explicitly check because its random like
    prs_b = GitProjectModel.get_project_prs(0, 10, "gitlab.com",
                                            "the-namespace", "the-repo-name")
    assert prs_b is None
    prs_c = GitProjectModel.get_project_prs(0, 10, "github", "the-namespace",
                                            "the-repo-name")
    assert prs_c is None
Example #2
0
    def get(self, forge, namespace, repo_name):
        """List PRs"""

        result = []
        first, last = indices()

        pr_list = GitProjectModel.get_project_prs(first, last, forge,
                                                  namespace, repo_name)
        if not pr_list:
            return response_maker([])
        for pr in pr_list:
            pr_info = {
                "pr_id": pr.pr_id,
                "builds": [],
                "tests": [],
            }
            copr_builds = []
            test_runs = []
            for build in pr.get_copr_builds():
                build_info = {
                    "build_id": build.build_id,
                    "chroot": build.target,
                    "status": build.status,
                    "web_url": build.web_url,
                }
                copr_builds.append(build_info)
            pr_info["builds"] = copr_builds
            for test_run in pr.get_test_runs():
                test_info = {
                    "pipeline_id": test_run.pipeline_id,
                    "chroot": test_run.target,
                    "status": str(test_run.status),
                    "web_url": test_run.web_url,
                }
                test_runs.append(test_info)
            pr_info["tests"] = test_runs

            result.append(pr_info)

        resp = response_maker(
            result,
            status=HTTPStatus.PARTIAL_CONTENT,
        )
        resp.headers["Content-Range"] = f"git-project-prs {first + 1}-{last}/*"
        return resp