Compare commits

...

10 Commits

Author SHA1 Message Date
Adam Hopkins
35c76253bf Bump version 20.12.3 (#2062) 2021-03-21 09:48:44 +02:00
laggardkernel
8d86c3c598 Remove unnecessary prefix from websocket handler name (#2021)
Remove the websocket prefix "websocket_handler_" introduced in
761eef7. Add a backward support for url_for() calling with this prefix
in param "view_name".
2021-03-14 20:33:07 +02:00
Adam Hopkins
97635111af Align setup.py 2021-02-16 09:33:48 +02:00
Adam Hopkins
7f3fe40cd4 Bump version 2021-02-16 08:50:35 +02:00
Adam Hopkins
ea34bcd849 Merge branch '20.12LTS' of github.com:sanic-org/sanic into 20.12LTS 2021-02-16 08:43:15 +02:00
Adam Hopkins
05f758583b Merge pull request #2029 from ashleysommer/tox_requires_2012
Fix tox requirements conflicts for 20.12LTS
2021-02-16 08:37:59 +02:00
Ashley Sommer
760c74a293 Merge remote-tracking branch 'origin/20.12LTS' into tox_requires_2012 2021-02-16 10:31:42 +10:00
Ashley Sommer
9def46beb8 Remove old chardet requirement, add our real multidict requirement 2021-02-16 10:03:40 +10:00
Ashley Sommer
04be8e95a5 Merge pull request #2026 from sanic-org/fix-uvloop-2012
Fix uvloop version for 20.12LTS
2021-02-16 09:23:57 +10:00
Adam Hopkins
78ced20fc7 fix uvloop version 2021-02-15 14:30:57 +02:00
5 changed files with 35 additions and 7 deletions

View File

@@ -1 +1 @@
__version__ = "20.12.1"
__version__ = "20.12.3"

View File

@@ -12,6 +12,7 @@ from ssl import Purpose, SSLContext, create_default_context
from traceback import format_exc
from typing import Any, Dict, Optional, Type, Union
from urllib.parse import urlencode, urlunparse
from warnings import warn
from sanic import reloader_helpers
from sanic.asgi import ASGIApp
@@ -494,9 +495,7 @@ class Sanic:
websocket_handler = partial(
self._websocket_handler, handler, subprotocols=subprotocols
)
websocket_handler.__name__ = (
"websocket_handler_" + handler.__name__
)
websocket_handler.__name__ = handler.__name__
routes.extend(
self.router.add(
uri=uri,
@@ -747,6 +746,24 @@ class Sanic:
kw.update(name=view_name)
uri, route = self.router.find_route_by_view_name(view_name, **kw)
# TODO(laggardkernel): this fix should be removed in v21.3.
# Try again without the unnecessary prefix "websocket_handler_",
# which was added by accident on non-blueprint handlers. GH-2021
if not (uri and route) and view_name.startswith("websocket_handler_"):
view_name = view_name[18:]
uri, route = self.router.find_route_by_view_name(view_name, **kw)
if uri and route:
warn(
"The bug of adding unnecessary `websocket_handler_` "
"prefix in param `view_name` for non-blueprint handlers "
"is fixed. This backward support will be removed in "
"v21.3. Please update `Sanic.url_for()` callings in your "
"code soon.",
DeprecationWarning,
stacklevel=2,
)
if not (uri and route):
raise URLBuildError(
f"Endpoint with name `{view_name}` was not found"

View File

@@ -57,7 +57,8 @@ setup_kwargs = {
"author": "Sanic Community",
"author_email": "admhpkns@gmail.com",
"description": (
"A web server and web framework that's written to go fast. Build fast. Run fast."
"A web server and web framework that's written to go fast. "
"Build fast. Run fast."
),
"long_description": long_description,
"packages": ["sanic"],
@@ -80,7 +81,7 @@ env_dependency = (
'; sys_platform != "win32" ' 'and implementation_name == "cpython"'
)
ujson = "ujson>=1.35" + env_dependency
uvloop = "uvloop>=0.5.3" + env_dependency
uvloop = "uvloop>=0.5.3,<0.15.0" + env_dependency
requirements = [
"httptools>=0.0.10",

View File

@@ -348,3 +348,13 @@ def test_methodview_naming(methodview_app):
assert viewone_url == "/view_one"
assert viewtwo_url == "/view_two"
def test_url_for_with_websocket_handlers(app):
# Test for a specific bugfix in GH-2021
@app.websocket("/ws")
async def my_handler(request, ws):
pass
assert app.url_for("my_handler") == "/ws"
assert app.url_for("websocket_handler_my_handler") == "/ws"

View File

@@ -16,7 +16,7 @@ deps =
pytest-dependency
httpcore==0.11.*
httpx==0.15.4
chardet==3.*
multidict>=5.0,<6.0
beautifulsoup4
gunicorn==20.0.4
uvicorn