def test_default_view_decorator(app: Application, registry: Registry, test_request_context: RequestContext) -> None: bp = Blueprint("registry", __name__, url_prefix="/blueprint") @default_view(bp, RegEntity) @bp.route("/<int:object_id>") def view(object_id): pass obj = RegEntity(id=1) # blueprint not registered: no rule set with raises(KeyError): registry.url_for(obj) # blueprint registered: default view is set app.register_blueprint(bp) assert registry.url_for(obj) == "/blueprint/1" assert (registry.url_for( obj, _external=True) == "http://localhost.localdomain/blueprint/1")
def __init__(self, app: Application) -> None: app.extensions["uploads"] = self app.add_template_global(self, "uploads") app.register_blueprint(blueprint) signals.register_js_api.connect(self._do_register_js_api) self.config: Dict[str, Any] = {} self.config.update(DEFAULT_CONFIG) self.config.update(app.config.get("FILE_UPLOADS", {})) app.config["FILE_UPLOADS"] = self.config # celery schedule CELERYBEAT_SCHEDULE = app.config.setdefault("CELERYBEAT_SCHEDULE", {}) if CLEANUP_SCHEDULE_ID not in CELERYBEAT_SCHEDULE: CELERYBEAT_SCHEDULE[CLEANUP_SCHEDULE_ID] = DEFAULT_CLEANUP_SCHEDULE path = self.UPLOAD_DIR = app.data_dir / "uploads" if not path.exists(): path.mkdir(mode=0o775, parents=True) path.resolve()
def register_plugin(app: Application) -> None: from .views import search app.register_blueprint(search) register_js_api.connect(_do_register_js_api)