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
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'
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'
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)
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)
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)
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)