File tree Expand file tree Collapse file tree 2 files changed +25
-1
lines changed Expand file tree Collapse file tree 2 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -67,6 +67,7 @@ def __init__(
6767 #: blueprint.
6868 self .url_prefix = url_prefix
6969
70+ self .name = self .options .get ("name" , blueprint .name )
7071 self .name_prefix = self .options .get ("name_prefix" , "" )
7172
7273 #: A dictionary with URL defaults that is added to each and every
@@ -96,9 +97,10 @@ def add_url_rule(
9697 defaults = self .url_defaults
9798 if "defaults" in options :
9899 defaults = dict (defaults , ** options .pop ("defaults" ))
100+
99101 self .app .add_url_rule (
100102 rule ,
101- f"{ self .name_prefix } .{ self .blueprint . name } .{ endpoint } " .lstrip ("." ),
103+ f"{ self .name_prefix } .{ self .name } .{ endpoint } " .lstrip ("." ),
102104 view_func ,
103105 defaults = defaults ,
104106 ** options ,
Original file line number Diff line number Diff line change @@ -889,3 +889,25 @@ def test_self_registration(app, client) -> None:
889889 bp = flask .Blueprint ("bp" , __name__ )
890890 with pytest .raises (ValueError ):
891891 bp .register_blueprint (bp )
892+
893+
894+ def test_blueprint_renaming (app , client ) -> None :
895+ bp = flask .Blueprint ("bp" , __name__ )
896+ bp2 = flask .Blueprint ("bp2" , __name__ )
897+
898+ @bp .get ("/" )
899+ def index ():
900+ return flask .request .endpoint
901+
902+ @bp2 .get ("/" )
903+ def index2 ():
904+ return flask .request .endpoint
905+
906+ bp .register_blueprint (bp2 , url_prefix = "/a" , name = "sub" )
907+ app .register_blueprint (bp , url_prefix = "/a" )
908+ app .register_blueprint (bp , url_prefix = "/b" , name = "alt" )
909+
910+ assert client .get ("/a/" ).data == b"bp.index"
911+ assert client .get ("/b/" ).data == b"alt.index"
912+ assert client .get ("/a/a/" ).data == b"bp.sub.index2"
913+ assert client .get ("/b/a/" ).data == b"alt.sub.index2"
You can’t perform that action at this time.
0 commit comments