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)
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, )
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, )
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, )
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, )
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, )
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, )
def test_create_status__unrecognized_status(): build, repo = setup_build_with_status("this-is-odd") with pytest.raises(BuildError): utils.create_status(build)