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
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_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
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
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
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
Beispiel #7
0
Datei: cli.py Projekt: 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_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)
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)
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_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)