def METHOD_NAME(make_stubber, stub_runner, error_code, stop_on_method):
    lookoutvision_client = boto3.client('lookoutvision')
    lookoutvision_stubber = make_stubber(lookoutvision_client)
    project_name = 'test-project_name'
    model = 'test-model'
    model_version = 'test-model'
    model_arn = 'test-arn'
    description = 'test description'
    status = 'HOSTED'
    message = 'Test message!'
    created = datetime.datetime.now()
    trained = created + datetime.timedelta(minutes=10)
    recall = .3
    precision = .5
    f1 = .7
    out_buck = 'doc-example-bucket'
    out_folder = 'test-folder'
    with stub_runner(error_code, stop_on_method) as runner:
        runner.add(lookoutvision_stubber.stub_list_models,
                   project_name, [model])
        runner.add(lookoutvision_stubber.stub_describe_model,
                   project_name, model_version, model_arn, status, {
                       'description': description, 'message': message, 'created': created,
                       'trained': trained, 'recall': recall, 'precision': precision, 'f1': f1,
                       'out_bucket': out_buck, 'out_folder': out_folder
                   })
    if error_code is None:
        running_models = find_running_models_in_project(
            lookoutvision_client, project_name)
        assert len(running_models) == 1
    else:
        with pytest.raises(ClientError) as exc_info:
            find_running_models_in_project(lookoutvision_client, project_name)
        assert exc_info.value.response['Error']['Code'] == error_code