示例#1
0
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")
示例#2
0
    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()
示例#3
0
def register_plugin(app: Application) -> None:
    from .views import search

    app.register_blueprint(search)
    register_js_api.connect(_do_register_js_api)