Пример #1
0
def test_app_create_modular_apps():
    jsonrpc_api_1 = JSONRPCBlueprint('jsonrpc_api_1', __name__)

    # pylint: disable=W0612
    @jsonrpc_api_1.method('blue1.fn2')
    def fn1_b1(s: str) -> str:
        return 'b1: Foo {0}'.format(s)

    jsonrpc_api_2 = JSONRPCBlueprint('jsonrpc_api_2', __name__)

    # pylint: disable=W0612
    @jsonrpc_api_2.method('blue2.fn2')
    def fn1_b2(s: str) -> str:
        return 'b2: Foo {0}'.format(s)

    # pylint: disable=W0612
    @jsonrpc_api_2.method('blue2.fn1')
    def fn2_b2(s: str) -> str:
        return 'b2: Bar {0}'.format(s)

    jsonrpc_api_3 = JSONRPCBlueprint('jsonrpc_api_3', __name__)

    # pylint: disable=W0612
    @jsonrpc_api_3.method('blue3.fn2')
    def fn1_b3(s: str) -> str:
        return 'b3: Foo {0}'.format(s)

    app = Flask(__name__, instance_relative_config=True)
    jsonrpc = JSONRPC(app, '/api', enable_web_browsable_api=True)
    jsonrpc.register_blueprint(app, jsonrpc_api_1, url_prefix='/b1')
    jsonrpc.register_blueprint(app, jsonrpc_api_2, url_prefix='/b2')
    jsonrpc.register_blueprint(app, jsonrpc_api_3, url_prefix='/b3')

    with app.test_client() as client:
        rv = client.post('/api/b1',
                         json={
                             'id': 1,
                             'jsonrpc': '2.0',
                             'method': 'blue1.fn2',
                             'params': [':)']
                         })
        assert rv.json == {'id': 1, 'jsonrpc': '2.0', 'result': 'b1: Foo :)'}
        assert rv.status_code == 200

        rv = client.post('/api/b2',
                         json={
                             'id': 1,
                             'jsonrpc': '2.0',
                             'method': 'blue2.fn2',
                             'params': [':)']
                         })
        assert rv.json == {'id': 1, 'jsonrpc': '2.0', 'result': 'b2: Foo :)'}
        assert rv.status_code == 200

        rv = client.post('/api/b2',
                         json={
                             'id': 1,
                             'jsonrpc': '2.0',
                             'method': 'blue2.fn1',
                             'params': [':)']
                         })
        assert rv.json == {'id': 1, 'jsonrpc': '2.0', 'result': 'b2: Bar :)'}
        assert rv.status_code == 200

        rv = client.post('/api/b3',
                         json={
                             'id': 1,
                             'jsonrpc': '2.0',
                             'method': 'blue3.fn2',
                             'params': [':)']
                         })
        assert rv.json == {'id': 1, 'jsonrpc': '2.0', 'result': 'b3: Foo :)'}
        assert rv.status_code == 200
Пример #2
0
app.redis = config.get('REDIS_URL')
app.config['SESSION_TYPE'] = 'redis'
app.config['SESSION_REDIS'] = app.redis
app.config['MAX_CONTENT_LENGTH'] = 10 * 1024 * 1024
app.config['UPLOAD_EXTENSIONS'] = ['.jpg', '.png', '.gif']
app.config['UPLOAD_FOLDER'] = 'uploads'

app.db_session = scoped_session(SessionLocal,
                                scopefunc=_app_ctx_stack.__ident_func__)

jsonrpc = JSONRPC(app,
                  '/api',
                  enable_web_browsable_api=True,
                  jsonrpc_site_api=AuthorizationView)
jsonrpc.register_blueprint(app,
                           modules,
                           url_prefix='/index',
                           enable_web_browsable_api=True)
jsonrpc.register_blueprint(app,
                           auth,
                           url_prefix='/auth',
                           enable_web_browsable_api=True)


@app.before_request
def before_request():
    if 'identifier' not in session:
        session['identifier'] = str(uuid.uuid4())


@app.teardown_appcontext
def remove_session(*args, **kwargs):
Пример #3
0
# isort:skip_file
import os
import sys

from flask import Flask

PROJECT_DIR, PROJECT_MODULE_NAME = os.path.split(os.path.dirname(os.path.realpath(__file__)))

FLASK_JSONRPC_PROJECT_DIR = os.path.join(PROJECT_DIR, os.pardir)
if os.path.exists(FLASK_JSONRPC_PROJECT_DIR) and FLASK_JSONRPC_PROJECT_DIR not in sys.path:
    sys.path.append(FLASK_JSONRPC_PROJECT_DIR)

from flask_jsonrpc import JSONRPC  # noqa: E402   pylint: disable=C0413

from api.user import user  # noqa: E402   pylint: disable=C0413,E0611
from api.article import article  # noqa: E402   pylint: disable=C0413,E0611

app = Flask(__name__)
jsonrpc = JSONRPC(app, '/api', enable_web_browsable_api=True)
jsonrpc.register_blueprint(app, user, url_prefix='/user', enable_web_browsable_api=True)
jsonrpc.register_blueprint(app, article, url_prefix='/article', enable_web_browsable_api=True)


@jsonrpc.method('App.index')
def index() -> str:
    return 'Welcome to Flask JSON-RPC'


if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True)
Пример #4
0
# isort:skip_file
import os
import sys

from flask import Flask, render_template

PROJECT_DIR, PROJECT_MODULE_NAME = os.path.split(
    os.path.dirname(os.path.realpath(__file__)))

FLASK_JSONRPC_PROJECT_DIR = os.path.join(PROJECT_DIR, os.pardir)
if os.path.exists(FLASK_JSONRPC_PROJECT_DIR
                  ) and FLASK_JSONRPC_PROJECT_DIR not in sys.path:
    sys.path.append(FLASK_JSONRPC_PROJECT_DIR)

from api.hello import hello  # noqa: E402   pylint: disable=C0413
from flask_jsonrpc import JSONRPC  # noqa: E402   pylint: disable=C0413

app = Flask(__name__)
app.config.from_object(__name__)
jsonrpc = JSONRPC(app, '/api')
jsonrpc.register_blueprint(app, hello, url_prefix='/hello')


@app.route('/')
def index():
    return render_template('index.html')


if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True)