コード例 #1
0
 def run(self, kw, context):
     assignment = VariableAssignment(kw.assign)
     with StatusReporter(context, self._get_result(kw, assignment)):
         with assignment.assigner(context) as assigner:
             return_value = self._run(context, kw.args)
             assigner.assign(return_value)
             return return_value
コード例 #2
0
 def run(self, kw, context):
     assignment = VariableAssignment(kw.assign)
     with StatusReporter(context, self._get_result(kw, assignment)):
         with assignment.assigner(context) as assigner:
             return_value = self._run(context, kw.args)
             assigner.assign(return_value)
             return return_value
コード例 #3
0
 def run(self, kw, context):
     assignment = VariableAssignment(kw.assign)
     variables = context.variables
     result = None
     status_reporter = None
     if sys.version_info[0] < 3:
         sys.exc_clear()
     try:
         args = self._resolve_arguments(kw.args, variables)
         with assignment.assigner(context) as assigner:
             with context.user_keyword:
                 self._set_arguments(args, context)
                 result = self._get_result(kw, assignment,
                                           context.variables)
                 status_reporter = self.get_status_reporter(context, result)
                 return_value = self._run(context, args, result)
             assigner.assign(return_value)
         return return_value
     except:
         if not result:
             result = self._get_result(kw, assignment, context.variables)
         if not status_reporter:
             status_reporter = self.get_status_reporter(context, result)
         raise
     finally:
         if status_reporter:
             status_reporter.__exit__(*sys.exc_info())
コード例 #4
0
 def run(self, kw, context, run=True):
     assignment = VariableAssignment(kw.assign)
     result = self._get_result(kw, assignment, context.variables)
     with StatusReporter(kw, result, context, run):
         with assignment.assigner(context) as assigner:
             if run:
                 return_value = self._run(context, kw.args, result)
                 assigner.assign(return_value)
                 return return_value
コード例 #5
0
    def run(self, kw, context):
        # print('LibraryKeywordRunner.run')
        assignment = VariableAssignment(kw.assign)

        with open('Excute.txt', 'a') as f:
            f.write('LK=')
            f.write(kw.name)
            f.write('\targs=')
            string = '['
            for arg in kw.args:
                if type(kw.parent) is robot.running.model.UserKeyword:  # and arg in context.variables.as_dict():
                    temp = arg
                    for var in context.variables.as_dict():
                        if var in arg:
                            #print 'replace ' + var + ' to ' + str(context.variables[var]).replace('\n', '\\n')
                            """if isinstance(context.variables[var], unicode):
                                string += arg.replace(var, context.variables[var].encode('utf-8').replace('\n', '\\n'))
                            else:
                                string += arg.replace(var, str(context.variables[var]).replace('\n', '\\n'))"""
                            temp = temp.replace(var, str(context.variables[var]).replace('\n', '\\n'))
                    string += temp
                else:
                    string += str(arg).replace('\n', '\\n')
                string += ','
            if len(string) > 1:
                string = string[:len(string) - 1] + ']'
            else:
                string += ']'
            f.write(string)
            f.write('\t')
            f.write('parent=')
            if type(kw.parent) is robot.running.model.UserKeyword:
                f.write(str(kw.parent.name))
            else:
                f.write(str(kw.parent))

        for assign in kw.assign:
            with open('Excute.txt', 'a') as f:
                f.write('\t')
                f.write(str(assign))

        with StatusReporter(context, self._get_result(kw, assignment)):
            with assignment.assigner(context) as assigner:
                return_value = self._run(context, kw.args)
                assigner.assign(return_value)
                with open('Excute.txt', 'a') as f:
                    if len(kw.assign) > 0:
                        """if isinstance(return_value, unicode):
                            f.write(return_value.encode('utf-8').replace('\n', '\\n'))
                        else:
                            f.write(str(return_value).replace('\n', '\\n'))"""
                        f.write(str(return_value).replace('\n', '\\n'))
                    f.write('\n')

                return return_value
コード例 #6
0
 def run(self, kw, context, run=True):
     assignment = VariableAssignment(kw.assign)
     result = self._get_result(kw, assignment, context.variables)
     with StatusReporter(kw, result, context, run):
         if self.private:
             context.warn_on_invalid_private_call(self._handler)
         with assignment.assigner(context) as assigner:
             if run:
                 return_value = self._run(context, kw.args, result)
                 assigner.assign(return_value)
                 return return_value
コード例 #7
0
 def run(self, kw, context, run=True):
     result = KeywordResult(kwname=self.name,
                            libname=self.libname,
                            args=kw.args,
                            assign=tuple(VariableAssignment(kw.assign)),
                            type=kw.type)
     with StatusReporter(kw, result, context, run):
         if run:
             raise self.error
コード例 #8
0
 def dry_run(self, kw, context):
     assignment = VariableAssignment(kw.assign)
     result = self._get_result(kw, assignment)
     with StatusReporter(kw, result, context, run=False):
         assignment.validate_assignment()
         self._dry_run(context, kw.args)
コード例 #9
0
 def dry_run(self, kw, context):
     assignment = VariableAssignment(kw.assign)
     result = self._get_result(kw, assignment, context.variables)
     with StatusReporter(context, result):
         assignment.validate_assignment()
         self._dry_run(context, kw.args, result)
コード例 #10
0
 def _verify_invalid(self, assign):
     assert_raises(DataError,
                   VariableAssignment(assign).validate_assignment)
コード例 #11
0
 def _verify_valid(self, assign):
     assignment = VariableAssignment(assign)
     assignment.validate_assignment()
     expected = [a.rstrip('= ') for a in assign]
     assert_equal(assignment.assignment, expected)
コード例 #12
0
 def _verify_valid(self, assign):
     assignment = VariableAssignment(assign)
     assignment.validate_assignment()
     expected = [a.rstrip('= ') for a in assign]
     assert_equal(assignment.assignment, expected)
コード例 #13
0
ファイル: userkeywordrunner.py プロジェクト: mypstom/robotide
    def run(self, kw, context):
        assignment = VariableAssignment(kw.assign)
        # print 'kw = %s arguments = %s' %(kw.name, self._handler.arguments)
        with open('Excute.txt', 'a') as f:
            f.write('UK=')
            f.write(kw.name)
            f.write('\targs=')
            string = '['
            for arg in kw.args:
                # string += '\''
                string += str(arg).replace('\n', '\\n')
                string += ','
            if len(string) > 1:
                string = string[:len(string) - 1] + ']'
            else:
                string += ']'
            f.write(string)
            f.write('\t')
            f.write('parent=')
            if type(kw.parent) is robot.running.model.UserKeyword:
                f.write(str(kw.parent.name))
            else:
                f.write(str(kw.parent))

        for assign in kw.assign:
            with open('Excute.txt', 'a') as f:
                f.write('\t')
                f.write(str(assign))
        if len(kw.assign) == 0:
            with open('Excute.txt', 'a') as f:
                f.write('\n')

        result = self._get_result(kw, assignment, context.variables)
        with StatusReporter(context, result):
            with assignment.assigner(context) as assigner:
                return_value = self._run(context, kw.args, result)
                assigner.assign(return_value)
                if len(kw.assign) > 0:
                    string1 = ''
                    string2 = ''
                    flag = False
                    with open('Excute.txt', 'r+') as f:
                        for line in f:
                            dataList = line.split('\t')
                            if len(dataList) > 4:
                                tempList = dataList[3].split('=')
                                for index in range(0, len(dataList)):
                                    if index < 3:
                                        string1 += dataList[index]
                                        string1 += '\t'
                                    elif index == 3:
                                        string1 += tempList[0]
                                        string1 += '='
                                        string2 += tempList[1]
                                        string2 += '='
                                        string2 += tempList[2]
                                        string2 += '\t'
                                    else:
                                        string2 += dataList[index]
                                        string2 += '\t'
                                string2 = string2[:len(string2) - 2]
                                string2 += '\n'
                                flag = True
                            elif flag:
                                string2 += line
                            else:
                                string1 += line

                    with open('Excute.txt', 'w+') as f:
                        f.write(string1)
                        #print 'string1\n' + string1 + '\n'
                        """if isinstance(return_value, unicode):
                            f.write(return_value.encode('utf-8').replace('\n', '\\n'))
                        else:
                            f.write(str(return_value).encode('utf8').replace('\n', '\\n'))"""
                        f.write(str(return_value).encode('utf8').replace('\n', '\\n'))
                        f.write('\n')
                        f.write(string2)
                        print 'string2\n' + string2 + '\n'

                return return_value