def test_serialization(self): with tempfile.TemporaryDirectory() as tmp_dir: path = Path(tmp_dir, "request") request = Request(path, "foo", mo.get_global_settings(), save_on_creation=False, enable_logging=False) request.default_run.charge = 1 request.default_run.fluence = 2 request.default_target.description = "foo" request.to_file() request_from_file = Request.from_file(request.request_file, mo.get_global_settings()) self.assertEqual(request.default_run.get_settings(), request_from_file.default_run.get_settings()) self.assertEqual(request.default_target.description, request_from_file.default_target.description) utils.disable_logging()
def test_folder_structure_when_logging_is_enabled(self): """Tests the folder structure when request is created""" with tempfile.TemporaryDirectory() as tmp_dir: path = Path(tmp_dir, self.folder_name) request = Request(path, "bar", mo.get_global_settings(), save_on_creation=True, enable_logging=True) folder_structure = { "request.log": None, **self.folder_structure, } utils.assert_folder_structure_equal(folder_structure, path) request.close_log_files()
def test_folder_structure_when_logging_is_not_enabled(self): with tempfile.TemporaryDirectory() as tmp_dir: path = Path(tmp_dir, self.folder_name) Request(path, "bar", mo.get_global_settings(), save_on_creation=True, enable_logging=False) utils.assert_folder_structure_equal(self.folder_structure, path)
def test_no_folders_are_created_if_save_on_creation_is_false(self): """Tests the folder structure when request is created""" with tempfile.TemporaryDirectory() as tmp_dir: path = Path(tmp_dir, self.folder_name) Request(path, "bar", mo.get_global_settings(), save_on_creation=False, enable_logging=False) self.assertEqual([], os.listdir(tmp_dir))
def get_request() -> Request: """Returns a MockRequest object. This is done to avoid lengthy file writing operations when a real Request is initialized """ return Request(_TEMP_DIR, "request", get_global_settings(), save_on_creation=False, enable_logging=False)
def test_folder_structure(self): """Tests the folder structure when request is created""" with tempfile.TemporaryDirectory() as tmp_dir: path = Path(tmp_dir, self.folder_name) Request(path, "bar", mo.get_global_settings(), save_on_creation=False, enable_logging=False) self.assertEqual([], os.listdir(tmp_dir)) request = Request(path, "bar", mo.get_global_settings(), save_on_creation=True, enable_logging=False) utils.assert_folder_structure_equal(self.folder_structure, path) request.to_file() utils.assert_folder_structure_equal(self.folder_structure, path) utils.disable_logging()
def test_default_values_are_same(self): with tempfile.TemporaryDirectory() as tmp_dir: path = Path(tmp_dir, "request") request = Request(path, "foo", mo.get_global_settings(), save_on_creation=True, enable_logging=False) self.assert_request_values_are_same(request) request_from_file = Request.from_file(request.request_file, mo.get_global_settings()) self.assert_request_values_are_same(request_from_file) self.assertEqual(request.request_file, request_from_file.request_file) self.assertEqual(request.directory, request_from_file.directory) self.assertIsNot(request, request_from_file) self.assertIsNot(request.default_measurement, request_from_file.default_measurement) self.assertIsNot(request.default_simulation, request_from_file.default_simulation) utils.disable_logging()
def test_element_simulation_settings(self): """This tests that ElementSimulation is run with the correct settings depending on how 'use_default_settings' and 'use_request_settings' have been set. """ with tempfile.TemporaryDirectory() as tmp_dir: # File paths tmp_dir = Path(tmp_dir).resolve() req_dir = tmp_dir / "req" sim_dir = req_dir / "Sample_01-foo" / \ f"{Simulation.DIRECTORY_PREFIX}01-bar" simu_file = sim_dir / "bar.simulation" # Request request = Request( req_dir, "test_req", GlobalSettings(config_dir=tmp_dir), {}, enable_logging=False) self.assertEqual(req_dir, request.directory) self.assertEqual("test_req", request.request_name) # Sample sample = request.samples.add_sample(name="foo") self.assertIs(sample, request.samples.samples[0]) self.assertIsInstance(sample, Sample) self.assertEqual("foo", sample.name) self.assertEqual(request, sample.request) self.assertEqual("Sample_01-foo", sample.directory) # Simulation sim = sample.simulations.add_simulation_file( sample, simu_file, 0) # Disable logging so the logging file handlers do not cause # an exception when the tmp dir is removed sim.close_log_files() self.assertIs(sim, sample.simulations.get_key_value(0)) self.assertIsInstance(sim.detector, Detector) self.assertIsInstance(sim.run, Run) self.assertEqual("bar", sim.name) self.assertEqual(request, sim.request) self.assertEqual(sample, sim.sample) # ElementSimulation rec_elem = RecoilElement( Element.from_string("Fe"), [Point((1, 1))], name="recoil_name") elem_sim = sim.add_element_simulation(rec_elem) self.assertIs(elem_sim, sim.element_simulations[0]) elem_sim.number_of_preions = 2 elem_sim.number_of_ions = 3 self.assertEqual(request, elem_sim.request) self.assertEqual("Fe-Default", elem_sim.get_full_name()) # Some pre-simulation checks self.assertIsNot(sim.target, request.default_target) self.assertIsNot(elem_sim, request.default_element_simulation) self.assertIsNot(sim.detector, request.default_detector) self.assertIsNot(sim.run, request.default_run) self.assertIsNot(sim.run.beam, request.default_run.beam) self.assertNotEqual( elem_sim.number_of_ions, request.default_element_simulation.number_of_ions) self.assert_expected_settings(elem_sim, request, sim)
def get(url, params=None): if params is None: params = {} params['apiKey'] = NewsAPI.API_KEY return Request.get(url, params)
def get(url, params=None): if params is None: params = {} params['token'] = Tiingo.TOKEN return Request.get(url, params)