コード例 #1
0
    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])
コード例 #2
0
    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())
コード例 #3
0
    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'])
コード例 #4
0
 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")
コード例 #5
0
    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")
コード例 #6
0
 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")
コード例 #7
0
    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")
コード例 #8
0
    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())
コード例 #9
0
    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")
コード例 #10
0
    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'])