Example #1
0
def test_lean_engine_error():
    err = leancloud.LeanEngineError(233, 'llllleancloud')
    assert err.code == 233
    assert err.message == 'llllleancloud'
    err = leancloud.LeanEngineError('error messages')
    assert err.code == 400
    assert err.message == 'error messages'
Example #2
0
def test_lean_engine_error():
    err = leancloud.LeanEngineError(233, "llllleancloud")
    assert err.code == 233
    assert err.message == "llllleancloud"
    err = leancloud.LeanEngineError("error messages")
    assert err.code == 400
    assert err.message == "error messages"
Example #3
0
def dispatch_cloud_hook(class_name, hook_name, params):
    hook_name = hook_name_mapping[hook_name] + class_name
    if hook_name not in _cloud_codes:
        raise NotAcceptable

    obj = leancloud.Object.create(class_name)
    obj._finish_fetch(params['object'], True)

    if '__updateKeys' in params['object']:
        obj.updated_keys = params['object']['__updateKeys']

    logger.info("{0}:{1} is called!".format(class_name, hook_name))

    func = _cloud_codes[hook_name]
    if not func:
        raise leancloud.LeanEngineError(
            code=404,
            message="cloud hook named '{0}' not found.".format(hook_name))

    func(obj)
    if hook_name.startswith('__after'):
        return {'result': 'ok'}
    elif hook_name.startswith('__before_delete_for'):
        return {}
    else:
        return obj.dump()
Example #4
0
def test_lean_engine_error():
    err = leancloud.LeanEngineError(status=404,
                                    code=1234567,
                                    message="nowhere")
    assert err.status == 404
    assert err.code == 1234567
    assert err.message == "nowhere"
    # backward compatibility tests
    err = leancloud.LeanEngineError(code=2020, message="eanCloud")
    assert err.status == 400
    assert err.code == 2020
    assert err.message == "eanCloud"
    err = leancloud.LeanEngineError(233, "llllleancloud")
    assert err.status == 400
    assert err.code == 233
    assert err.message == "llllleancloud"
    err = leancloud.LeanEngineError(226, "leancloud")
    assert err.status == 226
    assert err.code == 226
    assert err.message == "leancloud"
    err = leancloud.LeanEngineError("error messages")
    assert err.status == 400
    assert err.code == 400
    assert err.message == "error messages"
    err = leancloud.LeanEngineError()
    assert err.status == 400
    assert err.code == 400
    assert err.message == "error"
Example #5
0
def dispatch_cloud_hook(_cloud_codes, app_params, class_name, hook_name,
                        params):
    from .authorization import HOOK_KEY
    current_hook_key = app_params.get('hook_key')
    if not current_hook_key or current_hook_key != HOOK_KEY:
        raise LeanEngineError(code=401, message='Unauthorized.')
    hook_name = hook_name_mapping[hook_name] + class_name
    if hook_name not in _cloud_codes:
        raise NotAcceptable

    obj = leancloud.Object.create(class_name)
    obj._update_data(params['object'])

    if '_updatedKeys' in params['object']:
        obj.updated_keys = params['object']['_updatedKeys']

    if hook_name.startswith('__before'):
        if obj.has('__before'):
            obj.set('__before', obj.get('__before'))
        else:
            obj.disable_before_hook()
    elif hook_name.startswith('__after'):
        if obj.has('__after'):
            obj.set('__after', obj.get('__after'))
        else:
            obj.disable_after_hook()

    logger.info("{0}:{1} is called!".format(class_name, hook_name))

    func = _cloud_codes[hook_name]
    if not func:
        raise leancloud.LeanEngineError(
            code=404,
            message="cloud hook named '{0}' not found.".format(hook_name))

    func(obj)
    if hook_name.startswith('__after'):
        return {'result': 'ok'}
    elif hook_name.startswith('__before_delete_for'):
        return {}
    else:
        return obj.dump()
Example #6
0
def likes_must_not_be_negative(a_comment):
    if 'likes' not in a_comment.get('_updatedKeys'):
        return
    if a_comment.get('likes') < 0:
        raise leancloud.LeanEngineError(message=('likes 属性不支持负数'))
Example #7
0
def check_email(user):
    if 'email' not in user.updated_keys:
        return
    if "@example.com" not in user.get('email'):
        raise leancloud.LeanEngineError(message=('暂不支持该 Email 服务提供商'))