def test_session():
    parameter_set = ParameterSet()
    parameter_set.add_parameters(x1=range(3), x2=range(3))
    experiment = Experiment(__EXP_NAME__, parameter_set, TestComputation,
                            IntrospectStorage)

    env = InSituEnvironment(fail_fast=True)
    session = env.create_session(experiment)
    assert_false(session.is_open())
    assert_raises(ValueError, partial(session.run, TestComputation()))
    with session:
        for lazy_computation in experiment.yield_computations():
            session.run(lazy_computation)
        assert_equal(session.n_launch, 9)

    assert_false(session.is_open())
    assert_raises(ValueError, partial(session.run, TestComputation()))
def test_in_situ_autorefresh():
    env = InSituEnvironment(fail_fast=True)
    assert_true(env.auto_refresh)
def test_list_up_jobs():
    assert_is_none(InSituEnvironment.list_up_jobs())
    assert_is_none(BashEnvironment.list_up_jobs())

    if not SlurmEnvironment.is_usable():
        assert_is_none(SlurmEnvironment.list_up_jobs())
def test_usability():
    assert_equal(InSituEnvironment.is_usable(), True)
    assert_equal(BashEnvironment.is_usable(), True)
    assert_equal(SlurmEnvironment.is_usable(),
                 shutil.which("scontrol") is not None)
def test_in_situ_environment():
    for environment in InSituEnvironment(), InSituEnvironment(stdout=True):
        in_situ_env(environment)