Пример #1
0
def test_blueprint():
    app = Flagon()

    bp = Blueprint('foo', url_prefix='/foo')

    @bp.route('/bar')
    def bar():
        return 'bar'

    @bp.route('/bar2')
    def bar2():
        return 'bar2'

    app.register_blueprint(bp)
    app.register_blueprint(bp, url_prefix='/foo2')

    env = copy.deepcopy(env1)
    env['PATH_INFO'] = '/foo/bar'
    assert app(env, start_response)[0]  == b'bar'

    env = copy.deepcopy(env1)
    env['PATH_INFO'] = '/foo/bar2'
    assert app(env, start_response)[0]  == b'bar2'

    env = copy.deepcopy(env1)
    env['PATH_INFO'] = '/foo2/bar'
    assert app(env, start_response)[0]  == b'bar'

    env = copy.deepcopy(env1)
    env['PATH_INFO'] = '/foo2/bar2'
    assert app(env, start_response)[0]  == b'bar2'
Пример #2
0
def test_blueprint_errorhandler():
    app = Flagon()

    bp = Blueprint('foo', url_prefix='/foo')

    @bp.route('/bar')
    def bar():
        abort(400)
        return 'bar'

    @bp.route('/bar2')
    def bar2():
        i = 1/0
        return 'bar'

    @bp.errorhandler(400)
    def bp_errorhandler400(exception):
        return 'bar'

    @bp.errorhandler(Exception)
    def bp_errorhandler(exception):
        return 'bar2'

    app.register_blueprint(bp)

    env = copy.deepcopy(env1)
    env['PATH_INFO'] = '/foo/bar'
    assert app(env, start_response)[0]  == b'bar'

    env = copy.deepcopy(env1)
    env['PATH_INFO'] = '/foo/bar2'
    assert app(env, start_response)[0]  == b'bar2'
Пример #3
0
def test_basic_blueprint():
    app = Flagon()
    bp = Blueprint('foo', url_prefix='/foo')

    @bp.before_request
    def bp_before_request():
        pass

    @bp.route('/bar')
    def bar():
        return 'bar'

    @bp.before_app_request
    def bp_app_before_request():
        pass

    @bp.after_request
    def bp_after_request(resp):
        pass

    @bp.after_app_request
    def bp_after_app_request(resp):
        pass

    @bp.teardown_request
    def bp_teardown_request(exc):
        pass

    @bp.teardown_app_request
    def bp_teardown_app_request(exc):
        pass

    @bp.errorhandler(Exception)
    def bp_errorhandler(exception):
        pass

    @bp.app_errorhandler(Exception)
    def bp_app_errorhandler(exception):
        pass

    @bp.endpoint('bbb')
    def bbb():
        return 'ok'

    app.register_blueprint(bp)

    assert app.view_functions['foo.bbb'] == bbb

    @bp.route('/bar2')
    def bar2():
        return 'bar2'
Пример #4
0
Файл: app.py Проект: samakj/han
def create_app() -> Flagon:
    app = Flagon(__name__)

    app.cors = CORS(app)

    app.db = create_database(
        dbname=os.environ["DB_NAME"],
        host=os.environ["DB_HOST"],
        password=os.environ["DB_PASSWORD"],
        port=os.environ["DB_PORT"],
        user=os.environ["DB_USER"],
    )

    app.user_store = UserStore(db=app.db)
    app.superuser_store = SuperuserStore(db=app.db)
    app.access_control_store = AccessControlStore(db=app.db)

    app.register_blueprint(USERS_V0_BLUEPRINT, url_prefix="/v0")
    app.register_blueprint(SUPERUSERS_V0_BLUEPRINT, url_prefix="/v0")
    app.register_blueprint(ACCESS_CONTROLS_V0_BLUEPRINT, url_prefix="/v0")

    return app
Пример #5
0
def test_more_app():
    app = Flagon()
    assert 'Flagon' in repr(app)

    @app.before_request
    def before_request1():
        print('before_request')
        g.a = 1

    @app.before_request
    def before_request2():
        print('before_request2')
        g.b = 2

    @app.route('/hello')
    def hello():
        return 'ok'

    @app.after_request
    def after_request1(resp):
        return resp

    @app.after_request
    def after_request2(resp):
        return resp

    @app.errorhandler(404)
    def error_handler404(exception):
        return '404'

    @app.errorhandler(500)
    def error_handler500(exception):
        print(traceback.format_exc())
        return '500'

    @app.teardown_request
    def teardown_request(exc=None):
        pass

    assert app.before_request_funcs[None][0] == before_request1
    assert app.before_request_funcs[None][1] == before_request2
    assert app.after_request_funcs[None][0] == after_request2
    assert app.after_request_funcs[None][1] == after_request1

    bp = Blueprint('foo', url_prefix='/foo')
    @bp.before_request
    def bp_before_request():
        pass

    @bp.after_request
    def bp_after_request(resp):
        return resp

    @bp.teardown_request
    def bp_teardown_request(exc):
        pass

    @bp.route('/bar')
    def bar():
        return 'bar'

    @bp.before_app_request
    def bp_app_before_request():
        pass

    @bp.errorhandler(Exception)
    def bp_errorhandler(exception):
        pass

    app.register_blueprint(bp)
    assert app.before_request_funcs[None][2] == bp_app_before_request
    assert app.before_request_funcs['foo'][0] == bp_before_request

    env = copy.deepcopy(env1)
    env['PATH_INFO'] = '/hello'
    assert app(env, start_response)[0]  == b'ok'
    env = copy.deepcopy(env1)
    env['PATH_INFO'] = '/foo/bar'
    assert app(env, start_response)[0]  == b'bar'
    env = copy.deepcopy(env1)
    env['PATH_INFO'] = '/foo2'
    assert app(env, start_response)[0]  == b'404'
Пример #6
0
def create_app() -> Flagon:
    app = Flagon(__name__)

    app.config['SECRET_KEY'] = 'notsosecret'

    app.cors = CORS(app)

    app.db = create_database(
        dbname=os.environ["DB_NAME"],
        host=os.environ["DB_HOST"],
        password=os.environ["DB_PASSWORD"],
        port=os.environ["DB_PORT"],
        user=os.environ["DB_USER"],
    )

    app.device_location_tag_store = DeviceLocationTagStore(db=app.db)
    app.device_type_metric_store = DeviceTypeMetricStore(db=app.db)
    app.location_tag_store = LocationTagStore(db=app.db)
    app.metric_store = MetricStore(db=app.db)
    app.device_type_store = DeviceTypeStore(
        db=app.db,
        device_type_metric_store=app.device_type_metric_store,
        metric_store=app.metric_store)
    app.device_store = DeviceStore(
        db=app.db,
        device_location_tag_store=app.device_location_tag_store,
        location_tag_store=app.location_tag_store,
        device_type_store=app.device_type_store,
    )
    app.report_store = ReportStore(
        db=app.db,
        device_store=app.device_store,
        device_type_metric_store=app.device_type_metric_store,
        metric_store=app.metric_store,
    )

    app.register_blueprint(DEVICE_LOCATION_TAGS_V0_BLUEPRINT, url_prefix="/v0")
    app.register_blueprint(DEVICE_TYPE_METRICS_V0_BLUEPRINT, url_prefix="/v0")
    app.register_blueprint(DEVICE_TYPES_V0_BLUEPRINT, url_prefix="/v0")
    app.register_blueprint(DEVICES_V0_BLUEPRINT, url_prefix="/v0")
    app.register_blueprint(LOCATION_TAGS_V0_BLUEPRINT, url_prefix="/v0")
    app.register_blueprint(METRICS_V0_BLUEPRINT, url_prefix="/v0")
    app.register_blueprint(REPORTS_V0_BLUEPRINT, url_prefix="/v0")

    return app