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_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_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_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_set_datetime_param(self): p1 = computation_job_param.ComputationJobParam("mypar", "datetime", "par title", "par descr", formatter="%Y-%m-%d") p1.set_value("2019-10-21") self.assertEquals(p1.get_value_string(), "2019-10-21")
def test_set_multiple_int_param(self): p1 = computation_job_param.ComputationJobParam("mypar", "int", "par title", "par descr", max_occurencies=2) p1.set_value(["1", "2"]) self.assertEquals(p1.get_value_string(), ["1", "2"])
def test_set_int_param_wrong_value(self): p1 = computation_job_param.ComputationJobParam("mypar", "int", "par title", "par descr") # self.assertRaises( TypeError, p1.set_value("zxc") ) try: p1.set_value("all your base are belong to us") self.fail() except TypeError: self.assertTrue(True)
def test_set_multiple_int_param_wrong_occurrencies(self): p1 = computation_job_param.ComputationJobParam("mypar", "int", "par title", "par descr", max_occurencies=1) try: p1.set_value(["1", "2"]) self.fail() except TypeError: self.assertTrue(True)
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_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_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'])
def test_set_int_param(self): p1 = computation_job_param.ComputationJobParam("mypar", "int", "par title", "par descr") p1.set_value("1") self.assertEquals(p1.get_value_string(), "1")
def test_set_wrong_datetime_param(self): p1 = computation_job_param.ComputationJobParam("mypar", "datetime", "par title", "par descr") self.assertIsNone(p1.get_value_string())
def test_set_wrong_url_param(self): p1 = computation_job_param.ComputationJobParam("mypar", "url", "par title", "par descr") self.assertRaises(Exception, lambda: p1.set_value("https://www.google.com/%"))
def test_set_url_param(self): p1 = computation_job_param.ComputationJobParam("mypar", "url", "par title", "par descr") p1.set_value("https://www.google.com/") self.assertEquals(p1.get_value_string(), "https://www.google.com/")
def test_set_wrong_float_param(self): p1 = computation_job_param.ComputationJobParam("mypar", "float", "par title", "par descr") self.assertRaises(TypeError, lambda: p1.set_value("not float"))