def wrapper(f):
            # документация для swagger
            doc = {
                'responses': {
                    code: (description, [fields]) if as_list else (description, fields)
                }
            }
            f.__apidoc__ = merge(getattr(f, '__apidoc__', {}), doc)

            @wraps(f)
            def inner_wrapper(*args, **kwargs):
                response = ApiResponse(status=code, message='', data=[], errors=[], code=None)

                resp = f(*args, **kwargs)
                # для обратной совместимости
                if isinstance(resp, tuple):
                    resp, response['code'], headers = unpack(resp)

                # предпочитаемый формат
                if isinstance(resp, ApiResponse):
                    response.update(resp)
                # если все значения по умолчанию и передаём только данные
                else:
                    response['data'] = resp

                response['data'] = restful.marshal(response['data'], fields)

                return response

            return inner_wrapper
 def test_merge_simple_dicts_with_precedence(self):
     a = {'a': 'value', 'ab': 'overwritten'}
     b = {'b': 'other value', 'ab': 'keep'}
     self.assertEqual(utils.merge(a, b), {
         'a': 'value',
         'b': 'other value',
         'ab': 'keep'
     })
 def wrapper(func):
     doc = {
         'responses': {
             code: (description, [fields]) if as_list else (description, fields)
         },
         '__mask__': kwargs.get('mask', True),  # Mask values can't be determined outside app context
     }
     func.__apidoc__ = merge(getattr(func, '__apidoc__', {}), doc)
     return func
Exemple #4
0
 def wrapper(func):
     doc = {
         'responses': {
             code: (description, [fields]) if as_list else (description, fields)
         },
         '__mask__': kwargs.get('mask', True),  # Mask values can't be determined outside app context
     }
     func.__apidoc__ = merge(getattr(func, '__apidoc__', {}), doc)
     return func
 def test_recursions_with_empty(self):
     a = {}
     b = {
         'b': 'other value',
         'ab': 'keep',
         'nested_b': {
             'b': 'nested'
         },
         'nested_a_b': {
             'b': 'b only',
             'ab': 'keep'
         }
     }
     self.assertEqual(utils.merge(a, b), b)
 def test_recursions_with_empty(self):
     a = {}
     b = {
         'b': 'other value',
         'ab': 'keep',
         'nested_b': {
             'b': 'nested'
         },
         'nested_a_b': {
             'b': 'b only',
             'ab': 'keep'
         }
     }
     self.assertEqual(utils.merge(a, b), b)
 def test_recursions(self):
     a = {
         'a': 'value',
         'ab': 'overwritten',
         'nested_a': {
             'a': 'nested'
         },
         'nested_a_b': {
             'a': 'a only',
             'ab': 'overwritten'
         }
     }
     b = {
         'b': 'other value',
         'ab': 'keep',
         'nested_b': {
             'b': 'nested'
         },
         'nested_a_b': {
             'b': 'b only',
             'ab': 'keep'
         }
     }
     self.assertEqual(
         utils.merge(a, b), {
             'a': 'value',
             'b': 'other value',
             'ab': 'keep',
             'nested_a': {
                 'a': 'nested'
             },
             'nested_b': {
                 'b': 'nested'
             },
             'nested_a_b': {
                 'a': 'a only',
                 'b': 'b only',
                 'ab': 'keep'
             }
         })
 def test_recursions(self):
     a = {
         'a': 'value',
         'ab': 'overwritten',
         'nested_a': {
             'a': 'nested'
         },
         'nested_a_b': {
             'a': 'a only',
             'ab': 'overwritten'
         }
     }
     b = {
         'b': 'other value',
         'ab': 'keep',
         'nested_b': {
             'b': 'nested'
         },
         'nested_a_b': {
             'b': 'b only',
             'ab': 'keep'
         }
     }
     self.assertEqual(utils.merge(a, b), {
         'a': 'value',
         'b': 'other value',
         'ab': 'keep',
         'nested_a': {
             'a': 'nested'
         },
         'nested_b': {
             'b': 'nested'
         },
         'nested_a_b': {
             'a': 'a only',
             'b': 'b only',
             'ab': 'keep'
         }
     })
 def test_merge_simple_dicts_with_precedence(self):
     a = {'a': 'value', 'ab': 'overwritten'}
     b = {'b': 'other value', 'ab': 'keep'}
     self.assertEqual(utils.merge(a, b), {'a': 'value', 'b': 'other value', 'ab': 'keep'})
 def test_merge_simple_dicts_without_precedence(self):
     a = {'a': 'value'}
     b = {'b': 'other value'}
     self.assertEqual(utils.merge(a, b), {'a': 'value', 'b': 'other value'})
Exemple #11
0
 def test_merge_simple_dicts_without_precedence(self):
     a = {'a': 'value'}
     b = {'b': 'other value'}
     self.assertEqual(utils.merge(a, b), {'a': 'value', 'b': 'other value'})