Example #1
0
def test_deploy_ramp_event(session_scope_function):
    database_config = read_config(database_config_template())
    event_config_filename = ramp_config_template()
    event_config = read_config(event_config_filename)
    ramp_config = generate_ramp_config(event_config)
    deploy_ramp_event(database_config_template(), ramp_config_template())

    # simulate that we add users and sign-up for the event and that they
    # submitted the starting kit
    with session_scope(database_config['sqlalchemy']) as session:
        add_users(session)
        sign_up_team(session, ramp_config['event_name'], 'test_user')
        submit_starting_kits(session, ramp_config['event_name'], 'test_user',
                             ramp_config['ramp_kit_submissions_dir'])

    # run the dispatcher on the event which are in the dataset
    dispatcher = Dispatcher(config=database_config,
                            event_config=event_config,
                            worker=CondaEnvWorker,
                            n_workers=-1,
                            hunger_policy='exit')
    dispatcher.launch()

    # the iris kit contain a submission which should fail for a user
    with session_scope(database_config['sqlalchemy']) as session:
        submission = get_submissions(session,
                                     event_config['ramp']['event_name'],
                                     'training_error')
        assert len(submission) == 1
Example #2
0
def _setup_sign_up(session):
    # asking to sign up required a user, a problem, and an event.
    add_users(session)
    add_problems(session)
    add_events(session)
    sign_up_teams_to_events(session)
    return 'iris_test', 'test_user'
Example #3
0
def _setup_sign_up(session, config):
    # asking to sign up required a user, a problem, and an event.
    add_users(session)
    add_problems(session, config)
    add_events(session, config)
    sign_up_teams_to_events(session)
    return config['ramp']['event_name'], 'test_user'
Example #4
0
def test_add_users(session_scope_function):
    add_users(session_scope_function)
    users = get_user_by_name(session_scope_function, None)
    for user in users:
        assert user.name in ('test_user', 'test_user_2', 'test_iris_admin')
    err_msg = 'username is already in use'
    with pytest.raises(NameClashError, match=err_msg):
        add_users(session_scope_function)
Example #5
0
def session_scope_function():
    database_config = read_config(database_config_template())
    ramp_config = ramp_config_template()
    try:
        deployment_dir = create_test_db(database_config, ramp_config)
        with session_scope(database_config['sqlalchemy']) as session:
            add_users(session)
            add_problems(session)
            add_events(session)
            yield session
    finally:
        shutil.rmtree(deployment_dir, ignore_errors=True)
        db, _ = setup_db(database_config['sqlalchemy'])
        Model.metadata.drop_all(db)
Example #6
0
def test_sign_up_team_to_events(session_scope_function):
    add_users(session_scope_function)
    add_problems(session_scope_function)
    add_events(session_scope_function)
    sign_up_teams_to_events(session_scope_function)
Example #7
0
def test_submit_all_starting_kits(session_scope_function):
    add_users(session_scope_function)
    add_problems(session_scope_function)
    add_events(session_scope_function)
    sign_up_teams_to_events(session_scope_function)
    submit_all_starting_kits(session_scope_function)