Exemple #1
0
def test_check_build_outcome(
    workflow: DockerBuildWorkflow,
    prev_task_failed: bool,
    data_build_canceled: bool,
    prev_task_cancelled: bool,
    plugin_errors: Dict[str, str],
):

    expect_canceled = prev_task_cancelled or data_build_canceled
    expect_failed = expect_canceled or prev_task_failed or bool(plugin_errors)

    workflow.conf.conf['openshift'] = {'url': 'https://something.com'}
    mock_osbs = flexmock(workflow.osbs)
    (mock_osbs.should_receive('build_has_any_cancelled_tasks').once().
     and_return(prev_task_cancelled))
    (mock_osbs.should_receive('build_has_any_failed_tasks').times(
        0 if expect_canceled else 1).and_return(prev_task_failed))

    workflow.data.build_canceled = data_build_canceled
    workflow.data.plugins_errors = plugin_errors

    outcome = workflow.check_build_outcome()
    assert outcome == (expect_failed, expect_canceled)
    assert outcome != (False, True
                       )  # this is impossible, canceled counts as failed