PATHS_TO_PLOTS: { PLOTS_BUSSES: [], PLOTS_DEMANDS: [], PLOTS_RESOURCES: [], PLOTS_ES: [], PLOTS_PERFORMANCE: [], PLOTS_COSTS: [], } } SECTOR = "Electricity" INTERVAL = 2 OUTPUT_PATH = os.path.join(TEST_REPO_PATH, "test_outputs") PARSER = initializing.mvs_arg_parser() TEST_INPUT_PATH = os.path.join(TEST_REPO_PATH, TEST_INPUT_DIRECTORY, "inputs_F1_plot_es_graph") TEST_OUTPUT_PATH = os.path.join(TEST_REPO_PATH, "F1_outputs") # Data for test_if_plot_of_all_energy_flows_for_all_sectors_are_stored_for_14_days USER_INPUT = {PATH_OUTPUT_FOLDER: OUTPUT_PATH} PROJECT_DATA = {PROJECT_NAME: "a_project", SCENARIO_NAME: "a_scenario"} RESULTS_TIMESERIES = pd.read_csv( os.path.join(DUMMY_CSV_PATH, "plot_data_for_F1.csv"), sep=";", header=0, index_col=0,
}, } B0.retrieve_date_time_info(simulation_settings) for k in (START_DATE, END_DATE, TIME_INDEX): assert (k in simulation_settings.keys() ), f"Function does not add {k} to the simulation settings." assert simulation_settings[START_DATE] == pd.Timestamp( "2020-01-01 00:00:00"), f"Function incorrectly parses the timestamp." assert simulation_settings[END_DATE] == pd.Timestamp( "2020-01-01 23:00:00"), f"Function incorrectly parses the timestamp." assert ( simulation_settings[PERIODS] == 24 ), f"Function incorrectly identifies the number of evaluated periods." PARSER = A0.mvs_arg_parser() class TestTemporaryJsonFileDisposal: test_in_path = os.path.join(TEST_REPO_PATH, "inputs") test_out_path = os.path.join(TEST_REPO_PATH, "MVS_outputs") @mock.patch( "argparse.ArgumentParser.parse_args", return_value=PARSER.parse_args([ "-f", "-log", "warning", "-i", test_in_path,
class TestCommandLineInput: parser = A0.mvs_arg_parser() def test_input_folder(self): parsed = self.parser.parse_args(["-i", "input_folder"]) assert parsed.path_input_folder == "input_folder" def test_default_input_folder(self): parsed = self.parser.parse_args([]) assert parsed.path_input_folder == DEFAULT_INPUT_PATH def test_input_json_ext(self): parsed = self.parser.parse_args(["-ext", JSON_EXT]) assert parsed.input_type == JSON_EXT def test_input_csv_ext(self): parsed = self.parser.parse_args(["-ext", CSV_EXT]) assert parsed.input_type == CSV_EXT def test_default_input_type(self): parsed = self.parser.parse_args([]) assert parsed.input_type == JSON_EXT def test_ext_not_accepting_other_choices(self): with pytest.raises(SystemExit) as argparse_error: parsed = self.parser.parse_args(["-ext", "something"]) assert str(argparse_error.value) == "2" def test_output_folder(self): parsed = self.parser.parse_args(["-o", "output_folder"]) assert parsed.path_output_folder == "output_folder" def test_default_output_folder(self): parsed = self.parser.parse_args([]) assert parsed.path_output_folder == DEFAULT_OUTPUT_PATH def test_overwrite_false_by_default(self): parsed = self.parser.parse_args([]) assert parsed.overwrite is False def test_overwrite_activation(self): parsed = self.parser.parse_args(["-f"]) assert parsed.overwrite is True def test_pdf_report_false_by_default(self): parsed = self.parser.parse_args([]) assert parsed.pdf_report is False def test_pdf_report_activation(self): parsed = self.parser.parse_args(["-pdf"]) assert parsed.pdf_report is True def test_png_activation(self): parsed = self.parser.parse_args(["-png"]) assert parsed.save_png is True def test_log_assignation(self): parsed = self.parser.parse_args(["-log", "debug"]) assert parsed.display_output == "debug" def test_log_default(self): parsed = self.parser.parse_args([]) assert parsed.display_output == "info" def test_log_not_accepting_other_choices(self): with pytest.raises(SystemExit) as argparse_error: parsed = self.parser.parse_args(["-log", "something"]) assert str(argparse_error.value) == "2" # this ensure that the test is only ran if explicitly executed, # ie not when the `pytest` command alone it called @pytest.mark.skipif( EXECUTE_TESTS_ON not in (TESTS_ON_MASTER), reason="Benchmark test deactivated, set env variable " "EXECUTE_TESTS_ON to 'master' to run this test", ) @mock.patch( "argparse.ArgumentParser.parse_args", return_value=PARSER.parse_args([ "-f", "-log", "warning", "-i", os.path.join(TEST_REPO_PATH, INPUT_FOLDER), "-o", TEST_OUTPUT_PATH, ]), ) def test_user_defined_output_path(self, mock_args): main() assert os.path.exists(TEST_OUTPUT_PATH) def teardown_method(self): if os.path.exists(TEST_OUTPUT_PATH): shutil.rmtree(TEST_OUTPUT_PATH, ignore_errors=True)