Пример #1
0
    def _eval_content_with_bindings(self, content):
        functions_list = testcase.extract_functions(content)
        testcase_parser = self.context.testcase_parser
        if (functions_list == []):
            return testcase_parser.eval_content_with_bindings(content)

        for func_content in functions_list:
            function_meta = testcase.parse_function(func_content)
            func_name = function_meta['func_name']
            func = getattr(self, func_name, None)
            #类中没有相应的函数
            if (func == None):
                return testcase_parser.eval_content_with_bindings(content)

            args = function_meta.get('args', [])
            kwargs = function_meta.get('kwargs', {})
            args = self._eval_content_with_bindings(args)
            kwargs = self._eval_content_with_bindings(kwargs)

            eval_value = func(*args, **kwargs)

            func_content = "${" + func_content + "}"
            if func_content == content:
                # content is a variable
                content = eval_value
            else:
                # content contains one or many variables
                content = content.replace(func_content, str(eval_value), 1)

        return content
Пример #2
0
 def test_parse_function(self):
     self.assertEqual(
         testcase.parse_function("func()"),
         {'func_name': 'func', 'args': [], 'kwargs': {}}
     )
     self.assertEqual(
         testcase.parse_function("func(5)"),
         {'func_name': 'func', 'args': [5], 'kwargs': {}}
     )
     self.assertEqual(
         testcase.parse_function("func(1, 2)"),
         {'func_name': 'func', 'args': [1, 2], 'kwargs': {}}
     )
     self.assertEqual(
         testcase.parse_function("func(a=1, b=2)"),
         {'func_name': 'func', 'args': [], 'kwargs': {'a': 1, 'b': 2}}
     )
     self.assertEqual(
         testcase.parse_function("func(a= 1, b =2)"),
         {'func_name': 'func', 'args': [], 'kwargs': {'a': 1, 'b': 2}}
     )
     self.assertEqual(
         testcase.parse_function("func(1, 2, a=3, b=4)"),
         {'func_name': 'func', 'args': [1, 2], 'kwargs': {'a': 3, 'b': 4}}
     )
     self.assertEqual(
         testcase.parse_function("func($request, 123)"),
         {'func_name': 'func', 'args': ["$request", 123], 'kwargs': {}}
     )
     self.assertEqual(
         testcase.parse_function("func( )"),
         {'func_name': 'func', 'args': [], 'kwargs': {}}
     )
     self.assertEqual(
         testcase.parse_function("func(hello world, a=3, b=4)"),
         {'func_name': 'func', 'args': ["hello world"], 'kwargs': {'a': 3, 'b': 4}}
     )
     self.assertEqual(
         testcase.parse_function("func($request, 12 3)"),
         {'func_name': 'func', 'args': ["$request", '12 3'], 'kwargs': {}}
     )
Пример #3
0
 def test_parse_function(self):
     self.assertEqual(
         testcase.parse_function("func()"),
         {'func_name': 'func', 'args': [], 'kwargs': {}}
     )
     self.assertEqual(
         testcase.parse_function("func(5)"),
         {'func_name': 'func', 'args': [5], 'kwargs': {}}
     )
     self.assertEqual(
         testcase.parse_function("func(1, 2)"),
         {'func_name': 'func', 'args': [1, 2], 'kwargs': {}}
     )
     self.assertEqual(
         testcase.parse_function("func(a=1, b=2)"),
         {'func_name': 'func', 'args': [], 'kwargs': {'a': 1, 'b': 2}}
     )
     self.assertEqual(
         testcase.parse_function("func(a= 1, b =2)"),
         {'func_name': 'func', 'args': [], 'kwargs': {'a': 1, 'b': 2}}
     )
     self.assertEqual(
         testcase.parse_function("func(1, 2, a=3, b=4)"),
         {'func_name': 'func', 'args': [1, 2], 'kwargs': {'a': 3, 'b': 4}}
     )
     self.assertEqual(
         testcase.parse_function("func($request, 123)"),
         {'func_name': 'func', 'args': ["$request", 123], 'kwargs': {}}
     )
     self.assertEqual(
         testcase.parse_function("func( )"),
         {'func_name': 'func', 'args': [], 'kwargs': {}}
     )
     self.assertEqual(
         testcase.parse_function("func(hello world, a=3, b=4)"),
         {'func_name': 'func', 'args': ["hello world"], 'kwargs': {'a': 3, 'b': 4}}
     )
     self.assertEqual(
         testcase.parse_function("func($request, 12 3)"),
         {'func_name': 'func', 'args': ["$request", '12 3'], 'kwargs': {}}
     )
Пример #4
0
 def test_parse_function(self):
     self.assertEqual(
         testcase.parse_function("func()"),
         {'func_name': 'func', 'args': [], 'kwargs': {}}
     )
     self.assertEqual(
         testcase.parse_function("func(5)"),
         {'func_name': 'func', 'args': [5], 'kwargs': {}}
     )
     self.assertEqual(
         testcase.parse_function("func(1, 2)"),
         {'func_name': 'func', 'args': [1, 2], 'kwargs': {}}
     )
     self.assertEqual(
         testcase.parse_function("func(a=1, b=2)"),
         {'func_name': 'func', 'args': [], 'kwargs': {'a': 1, 'b': 2}}
     )
     self.assertEqual(
         testcase.parse_function("func(a= 1, b =2)"),
         {'func_name': 'func', 'args': [], 'kwargs': {'a': 1, 'b': 2}}
     )
     self.assertEqual(
         testcase.parse_function("func(1, 2, a=3, b=4)"),
         {'func_name': 'func', 'args': [1, 2], 'kwargs': {'a': 3, 'b': 4}}
     )
Пример #5
0
 def test_parse_function(self):
     self.assertEqual(
         testcase.parse_function("func()"),
         {'func_name': 'func', 'args': [], 'kwargs': {}}
     )
     self.assertEqual(
         testcase.parse_function("func(5)"),
         {'func_name': 'func', 'args': [5], 'kwargs': {}}
     )
     self.assertEqual(
         testcase.parse_function("func(1, 2)"),
         {'func_name': 'func', 'args': [1, 2], 'kwargs': {}}
     )
     self.assertEqual(
         testcase.parse_function("func(a=1, b=2)"),
         {'func_name': 'func', 'args': [], 'kwargs': {'a': 1, 'b': 2}}
     )
     self.assertEqual(
         testcase.parse_function("func(a= 1, b =2)"),
         {'func_name': 'func', 'args': [], 'kwargs': {'a': 1, 'b': 2}}
     )
     self.assertEqual(
         testcase.parse_function("func(1, 2, a=3, b=4)"),
         {'func_name': 'func', 'args': [1, 2], 'kwargs': {'a': 3, 'b': 4}}
     )