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'
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'
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'
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
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'
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