def parse_namelist_files_to_create_a_model_run(self, code_version, description, config_dir, name, namelist_files, status, user, spinup_in_years): """ Ceate a model run :param code_version: the code version object :param description: the description fo the model run :param config_dir: the configuration directory :param name: name of the model run :param namelist_files: namelist_files object :param status: status the model is to have :param user: the user creating the model run :param spinup_in_years: the spin up in years, for a science configuration :return: a model run """ model_run = ModelRun() model_run.name = name model_run.user = user model_run.code_version = code_version model_run.description = description model_run.status = status model_run.science_configuration_spinup_in_years = spinup_in_years model_run.parameter_values = [] log.info("Creating Model Run For: {0} ({1})".format(model_run.name, config_dir)) for namelist_file in namelist_files: filename = os.path.join(config_dir, namelist_file.filename) if os.path.exists(filename): log.info("Parsing: %s" % filename) nml_dict = self._read_namelist(filename) model_run.parameter_values.extend(self._create_parameter_values(namelist_file, nml_dict)) return model_run
def test_GIVEN_valid_output_and_model_run_WHEN_get_output_variable_name_THEN_output_variable_returned_(self): with session_scope() as session: param_val_output = ParameterValue() param_val_output.set_value_from_python('gpp_gb') parameter_service = ParameterService() param_output = parameter_service.get_parameter_by_constant(constants.JULES_PARAM_OUTPUT_VAR, session) param_output.parameter_values = [param_val_output] model_run = ModelRun() model_run.parameter_values = [param_val_output] session.add(model_run) session.commit() var = self.parameter_service.get_output_variable_name(model_run.id, param_val_output.id) assert_that(var, is_('gpp_gb'))