diff --git a/src/flask/app.py b/src/flask/app.py index ebb5a20254..d710cb96a4 100644 --- a/src/flask/app.py +++ b/src/flask/app.py @@ -952,6 +952,7 @@ def async_to_sync( def url_for( self, + /, endpoint: str, *, _anchor: str | None = None, diff --git a/tests/test_helpers.py b/tests/test_helpers.py index 077cb43298..3566385cf1 100644 --- a/tests/test_helpers.py +++ b/tests/test_helpers.py @@ -161,6 +161,13 @@ def post(self): assert flask.url_for("myview", id=42, _method="GET") == "/myview/42" assert flask.url_for("myview", _method="POST") == "/myview/create" + def test_url_for_with_self(self, app, req_ctx): + @app.route("/") + def index(self): + return "42" + + assert flask.url_for("index", self="2") == "/2" + def test_redirect_no_app(): response = flask.redirect("https://localhost", 307)