def test_update_json_list_in_file_two_times(self): target_json_file = path.path("./json_out.json") if target_json_file.exists(): target_json_file.remove() source_template_json_file = path.path( r"./src/wpsremote/xmpp_data/test/CMREOAA_MainConfigFile_template.json" ) param1 = computation_job_param.ComputationJobParam( "minlat", "float", "par title", "min latitude") param2 = computation_job_param.ComputationJobParam( "maxlat", "float", "par title", "max latitude") inputs = computation_job_inputs.ComputationJobInputs() action1 = computational_job_input_action_update_json_file.ComputationalJobInputActionUpdateJSONFile( "minlat", target_json_file, "['Config']['latLim'][0]", source_template_json_file) inputs.add_input(param1) inputs.add_input(param2) inputs.set_values({"minlat": "75.5", "maxlat": "76.5"}) action1.set_inputs(inputs) # check target_json_file json_text = target_json_file.text() j = json.loads(json_text) self.assertTrue(75.5, j['Config']['latLim'][0]) self.assertTrue(76.5, j['Config']['latLim'][1])
def test_create_2_json_file_action(self): p1 = computation_job_param.ComputationJobParam("mypar1", "application/json", "par 1", "par descr 1", max_occurencies=2) inputs = computation_job_inputs.ComputationJobInputs() inputs.add_input(p1) actions = computational_job_input_actions.ComputationalJobInputActions( ) a1 = computational_job_input_action_create_json_file. \ ComputationalJobInputActionCreateJSONFile("mypar1", path.path("./json_out_${json_path_expr}.json"), "['Asset']['id']", path.path("./src/wpsremote/xmpp_data/test/asset_schema.json")) actions.add_actions(a1) inputs.set_values({ "mypar1": [ TestComputationJobInputs.json_text1, TestComputationJobInputs.json_text2 ] }) actions.execute(inputs) self.assertTrue(a1.exists())
def test_update_json_file_action_with_string(self): os.chdir(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) target_json_file = path.path("./json_out.json") if target_json_file.exists(): target_json_file.remove() source_template_json_file = path.path( r"./src/wpsremote/xmpp_data/test/CMREOAA_MainConfigFile_template.json" ) param1 = computation_job_param.ComputationJobParam( "path_file_name", "string", "par 1", "path_file_name descr") inputs = computation_job_inputs.ComputationJobInputs() action1 = computational_job_input_action_update_json_file.ComputationalJobInputActionUpdateJSONFile( "path_file_name", target_json_file, "['Config']['pathFilename']", source_template_json_file) inputs.add_input(param1) inputs.set_values({"path_file_name": "thisIsOK.txt"}) action1.set_inputs(inputs) # check target_json_file json_text = target_json_file.text() j = json.loads(json_text) self.assertTrue("thisIsOK.txt", j['Config']['pathFilename'])
def test_two_params(self): p1 = computation_job_param.ComputationJobParam("mypar1", "int", "par 1", "par descr 1") p2 = computation_job_param.ComputationJobParam("mypar2", "string", "par 2", "par descr 2") inputs = computation_job_inputs.ComputationJobInputs() inputs.add_input([p1, p2]) inputs.set_values({"mypar1": "1", "mypar2": "abc"}) self.assertEquals(p1.get_value_string(), "1") self.assertEquals(p2.get_value_string(), "abc")
def test_cmd_line_action(self): inputs = computation_job_inputs.ComputationJobInputs() inputs.add_input( computation_job_param.ComputationJobParam("mypar1", "int", "par 1", "par descr 1")) actions = computational_job_input_actions.ComputationalJobInputActions( ) actions.add_actions( computational_job_input_action_cmd_param. ComputationalJobInputActionCmdParam("mypar1", "--name=value")) inputs.set_values({"mypar1": "1"}) actions.execute(inputs) self.assertEquals(actions.get_cmd_line(), "--mypar1=1")
def test_read_action_from_dict(self): input_dict = { "Action1": { "input_ref": "mypar1", "class": "cmdline", "template": "--name=value" } } inputs = computation_job_inputs.ComputationJobInputs() inputs.add_input( computation_job_param.ComputationJobParam("mypar1", "int", "par 1", "par descr")) actions = computational_job_input_actions. \ ComputationalJobInputActions.create_from_dict(input_dict) inputs.set_values({"mypar1": "1"}) actions.execute(inputs) self.assertEquals(actions.get_cmd_line(), "--mypar1=1")
def test_cmd_line_action_2_values(self): p1 = computation_job_param.ComputationJobParam("mypar1", "int", "par 1", "par descr 1") p2 = computation_job_param.ComputationJobParam("mypar2", "string", "par 2", "par descr 2") inputs = computation_job_inputs.ComputationJobInputs() inputs.add_input([p1, p2]) actions = computational_job_input_actions.ComputationalJobInputActions( ) actions.add_actions( computational_job_input_action_cmd_param. ComputationalJobInputActionCmdParam("mypar1", "--name=value")) actions.add_actions( computational_job_input_action_cmd_param. ComputationalJobInputActionCmdParam("mypar2", "--name=value")) inputs.set_values({"mypar1": "1", "mypar2": "abc"}) actions.execute(inputs) self.assertEquals(actions.get_cmd_line(), "--mypar1=1 --mypar2=abc")
def test_create_json_file_action(self): os.chdir(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) p1 = computation_job_param.ComputationJobParam("mypar1", "application/json", "par 1", "par descr 1") inputs = computation_job_inputs.ComputationJobInputs() inputs.add_input(p1) actions = computational_job_input_actions.ComputationalJobInputActions( ) a1 = computational_job_input_action_create_json_file. \ ComputationalJobInputActionCreateJSONFile("mypar1", path.path("./json_out_${json_path_expr}.json"), "['Asset']['id']", path.path("./src/wpsremote/xmpp_data/test/asset_schema.json")) actions.add_actions(a1) inputs.set_values({"mypar1": TestComputationJobInputs.json_text1}) actions.execute(inputs) self.assertTrue(a1.exists())
def test_read_action_from_ini(self): ini_text = '''[Action1] input_ref = mypar1 class = cmdline template = --name=value ''' config = ConfigParser.ConfigParser() ini_file = mockutils.FileLikeObjectMock(ini_text) config.readfp(ini_file) input_section = config.items('Action1') inputs = computation_job_inputs.ComputationJobInputs() inputs.add_input( computation_job_param.ComputationJobParam("mypar1", "int", "par 1", "par descr")) actions = computational_job_input_actions. \ ComputationalJobInputActions.create_from_config({'Action1': input_section}) inputs.set_values({"mypar1": "1"}) actions.execute(inputs) self.assertEquals(actions.get_cmd_line(), "--mypar1=1")
def test_update_json_file_action_with_int(self): target_json_file = path.path("./json_out.json") if target_json_file.exists(): target_json_file.remove() source_template_json_file = path.path( r"./src/wpsremote/xmpp_data/test/CMREOAA_MainConfigFile_template.json" ) param1 = computation_job_param.ComputationJobParam( "numberOfevaluations", "int", "par 1", "numberOfevaluations descr") inputs = computation_job_inputs.ComputationJobInputs() action1 = computational_job_input_action_update_json_file.ComputationalJobInputActionUpdateJSONFile( "numberOfevaluations", target_json_file, "['Config']['nEvaluations']", source_template_json_file) inputs.add_input(param1) inputs.set_values({"numberOfevaluations": "100"}) action1.set_inputs(inputs) # check target_json_file json_text = target_json_file.text() j = json.loads(json_text) self.assertTrue(100, j['Config']['nEvaluations'])