Ejemplo n.º 1
0
    def test_conditional_evaluation(self):
        select_xml = XML(
            '''<param name="always_true" type="select"><option value="true">True</option></param>'''
        )
        parameter = SelectToolParameter(self.tool, select_xml)

        conditional = Conditional()
        conditional.name = "c"
        conditional.test_param = parameter
        when = ConditionalWhen()
        when.inputs = {"thresh": self.tool.test_thresh_param()}
        when.value = "true"
        conditional.cases = [when]
        self.tool.set_params({"c": conditional})
        self.job.parameters = [
            JobParameter(
                name="c",
                value=
                '''{"thresh": 4, "always_true": "true", "__current_case__": 0}'''
            )
        ]
        self.tool._command_line = "prog1 --thresh=${c.thresh} --test_param=${c.always_true}"
        self._set_compute_environment()
        command_line, extra_filenames = self.evaluator.build()
        self.assertEquals(command_line, "prog1 --thresh=4 --test_param=true")
Ejemplo n.º 2
0
    def __test_arbitrary_path_rewriting(self):
        self.job.parameters = [
            JobParameter(name="index_path", value="\"/old/path/human\"")
        ]
        xml = XML('''<param name="index_path" type="select">
            <option value="/old/path/human">Human</option>
            <option value="/old/path/mouse">Mouse</option>
        </param>''')
        parameter = SelectToolParameter(self.tool, xml)

        def get_field_by_name_for_value(name, value, trans, other_values):
            assert value == "/old/path/human"
            assert name == "path"
            return ["/old/path/human"]

        parameter.options = Bunch(
            get_field_by_name_for_value=get_field_by_name_for_value)
        self.tool.set_params({"index_path": parameter})
        self.tool._command_line = "prog1 $index_path.fields.path"

        def test_path_rewriter(v):
            if v:
                v = v.replace("/old", "/new")
            return v

        self._set_compute_environment(path_rewriter=test_path_rewriter)
        command_line, extra_filenames = self.evaluator.build()
        self.assertEquals(command_line, "prog1 /new/path/human")
 def setUp(self):
     self.setup_app()
     self.tool = MockTool(self.app)
     self.job = Job()
     self.job.history = History()
     self.job.parameters = [JobParameter(name="thresh", value="4")]
     self.evaluator = ToolEvaluator(self.app, self.tool, self.job, self.test_directory)
Ejemplo n.º 4
0
    def __test_arbitrary_path_rewriting(self):
        self.job.parameters = [
            JobParameter(name="index_path", value="\"/old/path/human\"")
        ]
        xml = XML('''<param name="index_path" type="select">
            <option value="/old/path/human">Human</option>
            <option value="/old/path/mouse">Mouse</option>
        </param>''')
        parameter = SelectToolParameter(self.tool, xml)

        def get_field_by_name_for_value(name, value, trans, other_values):
            assert value == "/old/path/human"
            assert name == "path"
            return ["/old/path/human"]

        def get_options(trans, other_values):
            return [["", "/old/path/human", ""]]

        parameter.options = Bunch(
            get_field_by_name_for_value=get_field_by_name_for_value,
            get_options=get_options)
        self.tool.set_params({"index_path": parameter})
        self.tool._command_line = "prog1 $index_path.fields.path"
        self._set_compute_environment(
            unstructured_path_rewrites={"/old": "/new"})
        command_line = self.evaluator.build()[0]
        self.assertEqual(command_line, "prog1 /new/path/human")
Ejemplo n.º 5
0
 def test_repeat_evaluation(self):
     repeat = Repeat()
     repeat.name = "r"
     repeat.inputs = {"thresh": self.tool.test_thresh_param()}
     self.tool.set_params({"r": repeat})
     self.job.parameters = [JobParameter(name="r", value='''[{"thresh": 4, "__index__": 0},{"thresh": 5, "__index__": 1}]''')]
     self.tool._command_line = "prog1 #for $r_i in $r # $r_i.thresh#end for#"
     self._set_compute_environment()
     command_line, extra_filenames, _ = self.evaluator.build()
     self.assertEqual(command_line, "prog1  4 5")
Ejemplo n.º 6
0
 def test_evaluation_of_optional_datasets(self):
     # Make sure optional dataset don't cause evaluation to break and
     # evaluate in cheetah templates as 'None'.
     select_xml = XML('''<param name="input1" type="data" optional="true"></param>''')
     parameter = DataToolParameter(self.tool, select_xml)
     self.job.parameters = [JobParameter(name="input1", value=u'null')]
     self.tool.set_params({"input1": parameter})
     self.tool._command_line = "prog1 --opt_input='${input1}'"
     self._set_compute_environment()
     command_line, extra_filenames, _ = self.evaluator.build()
     self.assertEqual(command_line, "prog1 --opt_input='None'")