Exemplo n.º 1
0
def test_cancel_experiment_success(
        prepare_cancel_experiment_mocks: CancelExperimentMocks):
    RUN_QUEUED_COPY = copy.deepcopy(RUN_QUEUED)
    prepare_cancel_experiment_mocks.list_runs.return_value = [RUN_QUEUED_COPY]
    prepare_cancel_experiment_mocks.get_experiment.return_value = TEST_EXPERIMENTS[
        0]
    update_run_mock = prepare_cancel_experiment_mocks.mocker.patch.object(
        RUN_QUEUED_COPY, 'update')
    update_exp_mock = prepare_cancel_experiment_mocks.mocker.patch.object(
        TEST_EXPERIMENTS[0], 'update')
    cancel.cancel_experiment(exp_name="experiment-1",
                             runs_to_cancel=[RUN_QUEUED_COPY],
                             namespace="namespace")
    assert update_exp_mock.call_count == 2
    assert update_run_mock.call_count == 1
    check_cancel_experiment_asserts(prepare_cancel_experiment_mocks)
Exemplo n.º 2
0
def test_cancel_experiment_set_cancelling_state_failure(
        prepare_cancel_experiment_mocks: CancelExperimentMocks, caplog):
    import logging
    RUN_QUEUED_COPY = copy.deepcopy(RUN_QUEUED)
    caplog.set_level(logging.CRITICAL)
    update_exp_mock = prepare_cancel_experiment_mocks.mocker.patch.object(
        TEST_EXPERIMENTS[0], 'update')
    update_exp_mock.side_effect = RuntimeError()
    prepare_cancel_experiment_mocks.list_runs.return_value = [RUN_QUEUED_COPY]
    prepare_cancel_experiment_mocks.get_experiment.return_value = TEST_EXPERIMENTS[
        0]
    with pytest.raises(RuntimeError):
        cancel.cancel_experiment(exp_name="experiment-1",
                                 runs_to_cancel=[RUN_QUEUED_COPY],
                                 namespace="namespace")
    check_cancel_experiment_asserts(prepare_cancel_experiment_mocks,
                                    delete_helm_release_count=0)
Exemplo n.º 3
0
def test_cancel_experiment_failure(
        prepare_cancel_experiment_mocks: CancelExperimentMocks):
    RUN_QUEUED_COPY = copy.deepcopy(RUN_QUEUED)
    prepare_cancel_experiment_mocks.delete_helm_release.side_effect = RuntimeError(
    )
    prepare_cancel_experiment_mocks.list_runs.return_value = [RUN_QUEUED_COPY]
    prepare_cancel_experiment_mocks.get_experiment.return_value = TEST_EXPERIMENTS[
        0]
    update_run_mock = prepare_cancel_experiment_mocks.mocker.patch.object(
        RUN_QUEUED_COPY, 'update')
    update_exp_mock = prepare_cancel_experiment_mocks.mocker.patch.object(
        TEST_EXPERIMENTS[0], 'update')
    del_list, not_del_list = cancel.cancel_experiment(
        exp_name="experiment-1",
        runs_to_cancel=[RUN_QUEUED_COPY],
        namespace="namespace")

    assert len(del_list) == 0
    assert len(not_del_list) == 1
    assert update_exp_mock.call_count == 1
    assert update_run_mock.call_count == 0
    check_cancel_experiment_asserts(prepare_cancel_experiment_mocks)
Exemplo n.º 4
0
def test_cancel_experiment_one_cancelled_one_not(
        prepare_cancel_experiment_mocks: CancelExperimentMocks):
    prepare_cancel_experiment_mocks.delete_helm_release.side_effect = [
        DEFAULT, RuntimeError(), DEFAULT, DEFAULT
    ]
    prepare_cancel_experiment_mocks.list_runs.return_value = TEST_RUNS_CORRECT
    prepare_cancel_experiment_mocks.get_experiment.return_value = TEST_EXPERIMENTS[
        0]
    update_exp_mock = prepare_cancel_experiment_mocks.mocker.patch.object(
        TEST_EXPERIMENTS[0], 'update')
    for test_run in TEST_RUNS_CORRECT:
        prepare_cancel_experiment_mocks.mocker.patch.object(test_run, 'update')

    del_list, not_del_list = cancel.cancel_experiment(
        exp_name="experiment-1",
        runs_to_cancel=TEST_RUNS_CORRECT,
        namespace="namespace")

    assert update_exp_mock.call_count == 1
    assert len(del_list) == 1
    assert len(not_del_list) == 1
    check_cancel_experiment_asserts(prepare_cancel_experiment_mocks,
                                    delete_helm_release_count=2)