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