def test_dump():
    """Should convert the configuration to json format"""
    filename = os.path.join(tempfile.gettempdir(), "jade-unit-test-arc.json")
    arc = AutoRegressionConfiguration()
    arc.dump(filename=filename)
    assert os.path.exists(filename)
    os.remove(filename)
def test_dumps():
    """Should call json to perform dumps"""
    arc = AutoRegressionConfiguration()
    string = arc.dumps()
    assert "demo" in string
    assert "AutoRegressionConfiguration" in string
    assert "jobs = []" in string
def test_serialize():
    """Should create data for serialization"""
    arc = AutoRegressionConfiguration(job_inputs=MagicMock(), )
    data = arc.serialize()

    expected = {
        "class": "AutoRegressionConfiguration",
        "extension": "demo",
        "jobs_directory": None,
        "jobs": []
    }
    assert data == expected
def test_clear():
    """Should clear jobs container"""
    arc = AutoRegressionConfiguration()
    job1 = MagicMock()
    job1.name = "test"
    arc.add_job(job1)
    job2 = MagicMock()
    job2.name = "test2"
    arc.add_job(job2)
    assert arc.get_num_jobs() == 2

    arc.clear()
    assert arc.get_num_jobs() == 0
Exemplo n.º 5
0
def test_serialize():
    """Should create data for serialization"""
    arc = AutoRegressionConfiguration()
    data = arc.serialize()

    expected = {
        "configuration_class": "AutoRegressionConfiguration",
        "configuration_module":
        "jade.extensions.demo.autoregression_configuration",
        "format_version": "v0.2.0",
        "jobs_directory": None,
        "jobs": [],
        "user_data": {},
        "submission_groups": [],
    }
    assert data == expected
def test_remove_job():
    """Should remove job if job exists in container"""
    arc = AutoRegressionConfiguration()
    job1 = MagicMock()
    job1.name = "Job1"
    arc.add_job(job1)

    job2 = MagicMock()
    job2.name = "Job2"
    arc.add_job(job2)

    arc.remove_job(job1)
    assert arc.get_num_jobs() == 1
Exemplo n.º 7
0
Arquivo: cli.py Projeto: jgu2/jade
def auto_config(inputs, **kwargs):
    """
    Create a configuration file for demo

    :param inputs: str, the path to directory containing autoregression data.

    :return: None
    """
    if not os.path.exists(inputs):
        raise OSError(f"Inputs path '{inputs}' does not exist.")

    job_inputs = AutoRegressionInputs(inputs)
    config = AutoRegressionConfiguration(**kwargs)
    for job_param in job_inputs.iter_jobs():
        config.add_job(job_param)

    return config
def test_reconfigure_jobs():
    """Should reconfigure with a list of jobs"""
    job1 = MagicMock()
    job1.name = "Job1"
    arc = AutoRegressionConfiguration()
    arc.add_job(job1)

    job2 = MagicMock()
    job2.name = "Job2"

    job3 = MagicMock()
    job3.name = "Job3"

    arc.reconfigure_jobs(jobs=[job2, job3])
    assert arc.get_num_jobs() == 2

    with pytest.raises(InvalidParameter):
        arc.get_job("Job1")

    assert arc.get_job("Job2") == job2
def test_autogression_configuration__add_job():
    """Should add job to container"""
    arc = AutoRegressionConfiguration()
    job1 = MagicMock()
    job1.name = "test"
    arc.add_job(job1)
    job2 = MagicMock()
    job2.name = "test2"
    arc.add_job(job2)
    assert arc.get_num_jobs() == 2
Exemplo n.º 10
0
def test_get_job():
    """Should return the job expected"""
    arc = AutoRegressionConfiguration()
    job1 = MagicMock()
    job1.name = "Job1"
    arc.add_job(job1)

    job2 = MagicMock()
    job2.name = "Job2"
    arc.add_job(job2)

    job = arc.get_job("Job1")
    assert job == job1
Exemplo n.º 11
0
def test_list_jobs():
    """Should return a list of jobs"""
    arc = AutoRegressionConfiguration()
    job1 = MagicMock()
    job1.name = "Job1"
    arc.add_job(job1)

    job2 = MagicMock()
    job2.name = "Job2"
    arc.add_job(job2)

    jobs = arc.list_jobs()
    assert len(jobs) == 2
Exemplo n.º 12
0
def test_deserialize():
    """Should create an instance from saved configuration file"""
    data = {
        "jobs_directory": os.path.join(
            tempfile.gettempdir(),
            "my_jobs_base_dir",
        ),
        "format_version": JobConfiguration.FORMAT_VERSION,
    }
    arc = AutoRegressionConfiguration.deserialize(data)
    assert isinstance(arc, AutoRegressionConfiguration)
    assert arc._jobs_directory == os.path.join(
        tempfile.gettempdir(),
        "my_jobs_base_dir",
    )
Exemplo n.º 13
0
def test_show_results(capsys):
    """Should print jobs to std.out"""
    arc = AutoRegressionConfiguration()
    job1 = AutoRegressionParameters(country="AAA", data="AA.csv")
    arc.add_job(job1)

    arc.show_jobs()

    captured = capsys.readouterr()
    assert "aaa" in captured.out
def test_deserialize():
    """Should create an instance from saved configuration file"""
    data = {
        "jobs_directory":
        os.path.join(
            tempfile.gettempdir(),
            "my_jobs_base_dir",
        ),
    }
    arc = AutoRegressionConfiguration.deserialize(data)
    assert isinstance(arc, AutoRegressionConfiguration)
    assert arc.inputs is None
    assert arc._jobs_directory == os.path.join(
        tempfile.gettempdir(),
        "my_jobs_base_dir",
    )
Exemplo n.º 15
0
def test_serialize_jobs():
    """Should serialize a series of jobs"""
    arc = AutoRegressionConfiguration()
    job1 = AutoRegressionParameters(country="A", data="A.csv")
    arc.add_job(job1)

    job2 = AutoRegressionParameters(country="B", data="B.csv")
    arc.add_job(job2)

    directory = os.path.join(tempfile.gettempdir(), "jade-unit-test-dir")
    os.makedirs(directory, exist_ok=True)
    arc.serialize_jobs(directory)

    serialized_job1 = os.path.join(directory, "a.json")
    assert os.path.exists(serialized_job1)

    serialized_job2 = os.path.join(directory, "b.json")
    assert os.path.exists(serialized_job2)

    shutil.rmtree(directory)
Exemplo n.º 16
0
def test_iter_jobs():
    """Should iterate jobs in container"""
    arc = AutoRegressionConfiguration()
    job1 = MagicMock()
    job1.name = "Job1"
    arc.add_job(job1)

    job2 = MagicMock()
    job2.name = "Job2"
    arc.add_job(job2)

    jobs = arc.iter_jobs()
    assert next(jobs) in [job1, job2]
    assert next(jobs) in [job1, job2]

    with pytest.raises(StopIteration):
        next(jobs)
Exemplo n.º 17
0
def test_serialize_for_execution():
    """Serialize config data for efficient execution"""
    arc = AutoRegressionConfiguration()
    job1 = AutoRegressionParameters(country="AA", data="AA.csv")
    arc.add_job(job1)

    job2 = AutoRegressionParameters(country="BB", data="BB.csv")
    arc.add_job(job2)

    # Serialize for execution
    scratch_dir = os.path.join(
        tempfile.gettempdir(),
        "jade-unit-test-scratch-dir",
    )
    os.makedirs(scratch_dir, exist_ok=True)
    arc.serialize_for_execution(scratch_dir)

    config_file = os.path.join(scratch_dir, "config.json")
    assert os.path.exists(config_file)

    shutil.rmtree(scratch_dir)
Exemplo n.º 18
0
def test_init():
    """Should return expected attributes after initialization"""
    job_inputs = MagicMock()
    arc = AutoRegressionConfiguration(job_inputs=job_inputs)
def test_init():
    """Should return expected attributes after initialization"""
    job_inputs = MagicMock()
    arc = AutoRegressionConfiguration(job_inputs=job_inputs)
    assert arc.inputs == job_inputs
    assert arc.job_execution_class() == AutoRegressionExecution
def test_get_job_inputs():
    """Test class methods"""
    job_inputs = MagicMock()
    arc = AutoRegressionConfiguration(job_inputs=job_inputs, )
    assert arc.get_job_inputs() == job_inputs
Exemplo n.º 21
0
def test_create_from_result():
    """Should return None as not implemented"""
    job_inputs = MagicMock()
    arc = AutoRegressionConfiguration(job_inputs=job_inputs, )
    assert arc.create_from_result(MagicMock(), "output") is None
def test_get_parameters_class():
    """Should return the AutoRegressionParameters class"""
    arc = AutoRegressionConfiguration(job_inputs=MagicMock(), )
    assert arc.get_parameters_class().__name__ == "AutoRegressionParameters"
Exemplo n.º 23
0
def get_config():
    job_inputs = MagicMock()
    config = AutoRegressionConfiguration(job_inputs=job_inputs)
    return config