blueprint name may not contain a dot

This commit is contained in:
David Lord 2021-05-13 14:31:50 -07:00
parent d8c37f4372
commit 7c5261407d
No known key found for this signature in database
GPG key ID: 7A1C87E3F5BC42A8
4 changed files with 28 additions and 85 deletions

View file

@ -188,6 +188,10 @@ class Blueprint(Scaffold):
template_folder=template_folder,
root_path=root_path,
)
if "." in name:
raise ValueError("'name' may not contain a dot '.' character.")
self.name = name
self.url_prefix = url_prefix
self.subdomain = subdomain
@ -360,12 +364,12 @@ class Blueprint(Scaffold):
"""Like :meth:`Flask.add_url_rule` but for a blueprint. The endpoint for
the :func:`url_for` function is prefixed with the name of the blueprint.
"""
if endpoint:
assert "." not in endpoint, "Blueprint endpoints should not contain dots"
if view_func and hasattr(view_func, "__name__"):
assert (
"." not in view_func.__name__
), "Blueprint view function name should not contain dots"
if endpoint and "." in endpoint:
raise ValueError("'endpoint' may not contain a dot '.' character.")
if view_func and hasattr(view_func, "__name__") and "." in view_func.__name__:
raise ValueError("'view_func' name may not contain a dot '.' character.")
self.record(lambda s: s.add_url_rule(rule, endpoint, view_func, **options))
def app_template_filter(self, name: t.Optional[str] = None) -> t.Callable: