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_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_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 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_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)
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_init(): """Should return expected attributes after initialization""" job_inputs = MagicMock() arc = AutoRegressionConfiguration(job_inputs=job_inputs)
def get_config(): job_inputs = MagicMock() config = AutoRegressionConfiguration(job_inputs=job_inputs) return config
def test_get_job_inputs(): """Test class methods""" job_inputs = MagicMock() arc = AutoRegressionConfiguration(job_inputs=job_inputs, ) assert arc.get_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_parameters_class(): """Should return the AutoRegressionParameters class""" arc = AutoRegressionConfiguration(job_inputs=MagicMock(), ) assert arc.get_parameters_class().__name__ == "AutoRegressionParameters"