From 85c4ea94340d3896a8d2dc3e9e6d407cbe8c612f Mon Sep 17 00:00:00 2001 From: Hackintosh Five Date: Thu, 1 Oct 2020 17:45:34 +0100 Subject: [PATCH] Fix #1943 --- sanic/blueprints.py | 10 ++-------- sanic/router.py | 11 +++++++---- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/sanic/blueprints.py b/sanic/blueprints.py index cf5eee5ece..d786a2062e 100644 --- a/sanic/blueprints.py +++ b/sanic/blueprints.py @@ -108,9 +108,6 @@ def register(self, app, options): # Routes for future in self.routes: - # attach the blueprint name to the handler so that it can be - # prefixed properly in the router - future.handler.__blueprintname__ = self.name # Prepend the blueprint URI prefix if available uri = url_prefix + future.uri if url_prefix else future.uri @@ -123,22 +120,19 @@ def register(self, app, options): strict_slashes=future.strict_slashes, stream=future.stream, version=version, - name=future.name, + name=future.name or f"{self.name}.{future.handler.__name__}", )(future.handler) if _routes: routes += _routes for future in self.websocket_routes: - # attach the blueprint name to the handler so that it can be - # prefixed properly in the router - future.handler.__blueprintname__ = self.name # Prepend the blueprint URI prefix if available uri = url_prefix + future.uri if url_prefix else future.uri _routes, _ = app.websocket( uri=uri, host=future.host or self.host, strict_slashes=future.strict_slashes, - name=future.name, + name=future.name or f"{self.name}.{future.handler.__name__}", )(future.handler) if _routes: routes += _routes diff --git a/sanic/router.py b/sanic/router.py index a608f1a24d..947ad39f33 100644 --- a/sanic/router.py +++ b/sanic/router.py @@ -294,12 +294,15 @@ def merge_route(route, methods, handler): is_static = True name = name.split("_static_", 1)[-1] - if hasattr(handler, "__blueprintname__"): - bp_name = handler.__blueprintname__ + if not name: + if hasattr(handler, "__blueprintname__"): + bp_name = handler.__blueprintname__ - handler_name = f"{bp_name}.{name or handler.__name__}" + handler_name = f"{bp_name}.{name or handler.__name__}" + else: + handler_name = getattr(handler, "__name__", None) else: - handler_name = name or getattr(handler, "__name__", None) + handler_name = name if route: route = merge_route(route, methods, handler)