Merge pull request #966 from yunstanford/patch-M

Sanic routes should not pass angled params with empty names
This commit is contained in:
Raphael Deem 2017-10-13 02:18:20 -07:00 committed by GitHub
commit 006fb08024
2 changed files with 14 additions and 0 deletions

View File

@ -93,6 +93,10 @@ class Router:
pattern = 'string' pattern = 'string'
if ':' in parameter_string: if ':' in parameter_string:
name, pattern = parameter_string.split(':', 1) name, pattern = parameter_string.split(':', 1)
if not name:
raise ValueError(
"Invalid parameter syntax: {}".format(parameter_string)
)
default = (str, pattern) default = (str, pattern)
# Pull from pre-configured types # Pull from pre-configured types

View File

@ -71,6 +71,16 @@ def test_route_strict_slash():
request, response = app.test_client.post('/post') request, response = app.test_client.post('/post')
assert response.status == 404 assert response.status == 404
def test_route_invalid_parameter_syntax():
with pytest.raises(ValueError):
app = Sanic('test_route_invalid_param_syntax')
@app.get('/get/<:string>', strict_slashes=True)
def handler(request):
return text('OK')
request, response = app.test_client.get('/get')
def test_route_strict_slash_default_value(): def test_route_strict_slash_default_value():
app = Sanic('test_route_strict_slash', strict_slashes=True) app = Sanic('test_route_strict_slash', strict_slashes=True)