Пример #1
0
def set_github_status(build_id):
    reset_database_connection()

    from metaci.build.models import Build

    build = Build.objects.get(id=build_id)
    create_status(build)
Пример #2
0
def test_create_status__success():
    build, repo = setup_build_with_status("success")

    utils.create_status(build)
    repo.create_status.assert_called_once_with(
        sha=build.commit,
        state="success",
        target_url=f"initech.co/builds/{build.id}",
        description="The build was successful",
        context=build.plan.context,
    )
Пример #3
0
def test_create_status__qa():
    build, repo = setup_build_with_status("qa")

    utils.create_status(build)
    repo.create_status.assert_called_once_with(
        sha=build.commit,
        state="pending",
        target_url=f"initech.co/builds/{build.id}",
        description=f"{build.user} is testing",
        context=build.plan.context,
    )
Пример #4
0
def test_create_status__waiting():
    build, repo = setup_build_with_status("waiting")

    utils.create_status(build)
    repo.create_status.assert_called_once_with(
        sha=build.commit,
        state="pending",
        target_url=f"initech.co/builds/{build.id}",
        description="The build is waiting for another build to complete",
        context=build.plan.context,
    )
Пример #5
0
def test_create_status__fail_qa():
    build, repo = setup_build_with_status("fail")
    build.plan.role = "qa"
    utils.create_status(build)
    repo.create_status.assert_called_once_with(
        sha=build.commit,
        state="failure",
        target_url=f"initech.co/builds/{build.id}",
        description=f"{build.qa_user} rejected. See details for QA comments",
        context=build.plan.context,
    )
Пример #6
0
def test_create_status__error():
    build, repo = setup_build_with_status("error")

    utils.create_status(build)
    repo.create_status.assert_called_once_with(
        sha=build.commit,
        state="error",
        target_url=f"initech.co/builds/{build.id}",
        description="An error occurred during the build",
        context=build.plan.context,
    )
Пример #7
0
def test_create_status__fail():
    build, repo = setup_build_with_status("fail")
    # First BuildFlow
    BuildFlowFactory(build=build)
    # Second BuildFlow, this one has a failing test :(
    bf = BuildFlowFactory(build=build)
    bf.tests_fail = 1
    bf.save()

    utils.create_status(build)
    repo.create_status.assert_called_once_with(
        sha=build.commit,
        state="failure",
        target_url=f"initech.co/builds/{build.id}/tests",
        description="⚠ ️1/2 failed",  # each BuildFlow has total_tests == 1
        context=build.plan.context,
    )
Пример #8
0
def test_create_status__unrecognized_status():
    build, repo = setup_build_with_status("this-is-odd")
    with pytest.raises(BuildError):
        utils.create_status(build)