Resolve some more tests
This commit is contained in:
@@ -304,24 +304,18 @@ async def test_cookie_customization(app):
|
||||
_, response = await app.asgi_client.get("/cookie")
|
||||
|
||||
CookieDef = namedtuple("CookieDef", ("value", "httponly"))
|
||||
Cookie = namedtuple("Cookie", ("domain", "path", "value", "httponly"))
|
||||
cookie_map = {
|
||||
"test": CookieDef("Cookie1", True),
|
||||
"c2": CookieDef("Cookie2", False),
|
||||
}
|
||||
|
||||
cookies = {
|
||||
c.name: Cookie(c.domain, c.path, c.value, "HttpOnly" in c._rest.keys())
|
||||
for c in response.cookies.jar
|
||||
}
|
||||
|
||||
for name, definition in cookie_map.items():
|
||||
cookie = cookies.get(name)
|
||||
cookie = response.cookies.get(name)
|
||||
assert cookie
|
||||
assert cookie.value == definition.value
|
||||
assert cookie.domain == "mockserver.local"
|
||||
assert cookie.path == "/"
|
||||
assert cookie.httponly == definition.httponly
|
||||
assert cookie.get("domain") == "mockserver.local"
|
||||
assert cookie.get("path") == "/"
|
||||
assert cookie.get("httponly", False) == definition.httponly
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
|
||||
@@ -197,7 +197,12 @@ def test_several_bp_with_url_prefix(app):
|
||||
|
||||
|
||||
def test_bp_with_host(app):
|
||||
bp = Blueprint("test_bp_host", url_prefix="/test1", host="example.com")
|
||||
bp = Blueprint(
|
||||
"test_bp_host",
|
||||
url_prefix="/test1",
|
||||
host="example.com",
|
||||
strict_slashes=True,
|
||||
)
|
||||
|
||||
@bp.route("/")
|
||||
def handler1(request):
|
||||
@@ -209,18 +214,29 @@ def test_bp_with_host(app):
|
||||
|
||||
app.blueprint(bp)
|
||||
headers = {"Host": "example.com"}
|
||||
app.router.finalize()
|
||||
|
||||
request, response = app.test_client.get("/test1/", headers=headers)
|
||||
assert response.body == b"Hello"
|
||||
|
||||
headers = {"Host": "sub.example.com"}
|
||||
request, response = app.test_client.get("/test1/", headers=headers)
|
||||
print(app.router.find_route_src)
|
||||
assert response.body == b"Hello subdomain!"
|
||||
|
||||
|
||||
def test_several_bp_with_host(app):
|
||||
bp = Blueprint("test_text", url_prefix="/test", host="example.com")
|
||||
bp2 = Blueprint("test_text2", url_prefix="/test", host="sub.example.com")
|
||||
bp = Blueprint(
|
||||
"test_text",
|
||||
url_prefix="/test",
|
||||
host="example.com",
|
||||
strict_slashes=True,
|
||||
)
|
||||
bp2 = Blueprint(
|
||||
"test_text2",
|
||||
url_prefix="/test",
|
||||
host="sub.example.com",
|
||||
strict_slashes=True,
|
||||
)
|
||||
|
||||
@bp.route("/")
|
||||
def handler(request):
|
||||
@@ -449,6 +465,7 @@ def test_bp_exception_handler(app):
|
||||
|
||||
|
||||
def test_bp_listeners(app):
|
||||
app.route("/")(lambda x: x)
|
||||
blueprint = Blueprint("test_middleware")
|
||||
|
||||
order = []
|
||||
@@ -723,7 +740,8 @@ def test_blueprint_middleware_with_args(app: Sanic):
|
||||
|
||||
|
||||
@pytest.mark.parametrize("file_name", ["test.file"])
|
||||
def test_static_blueprint_name(app: Sanic, static_file_directory, file_name):
|
||||
def test_static_blueprint_name(static_file_directory, file_name):
|
||||
app = Sanic("app")
|
||||
current_file = inspect.getfile(inspect.currentframe())
|
||||
with open(current_file, "rb") as file:
|
||||
file.read()
|
||||
@@ -738,9 +756,6 @@ def test_static_blueprint_name(app: Sanic, static_file_directory, file_name):
|
||||
)
|
||||
|
||||
app.blueprint(bp)
|
||||
print(app.router.name_index)
|
||||
print(app.router.static_routes)
|
||||
print(app.router.dynamic_routes)
|
||||
|
||||
uri = app.url_for("static", name="static.testing")
|
||||
assert uri == "/static/test.file"
|
||||
@@ -841,18 +856,19 @@ def test_duplicate_blueprint(app):
|
||||
)
|
||||
|
||||
|
||||
def test_strict_slashes_behavior_adoption(app):
|
||||
def test_strict_slashes_behavior_adoption():
|
||||
app = Sanic("app")
|
||||
app.strict_slashes = True
|
||||
bp = Blueprint("bp")
|
||||
bp2 = Blueprint("bp2", strict_slashes=False)
|
||||
|
||||
@app.get("/test")
|
||||
def handler_test(request):
|
||||
return text("Test")
|
||||
|
||||
assert app.test_client.get("/test")[1].status == 200
|
||||
assert app.test_client.get("/test/")[1].status == 404
|
||||
|
||||
app.router.finalized = False
|
||||
bp = Blueprint("bp")
|
||||
@app.get("/f1", strict_slashes=False)
|
||||
def f1(request):
|
||||
return text("f1")
|
||||
|
||||
@bp.get("/one", strict_slashes=False)
|
||||
def one(request):
|
||||
@@ -862,7 +878,15 @@ def test_strict_slashes_behavior_adoption(app):
|
||||
def second(request):
|
||||
return text("second")
|
||||
|
||||
@bp2.get("/third")
|
||||
def third(request):
|
||||
return text("third")
|
||||
|
||||
app.blueprint(bp)
|
||||
app.blueprint(bp2)
|
||||
|
||||
assert app.test_client.get("/test")[1].status == 200
|
||||
assert app.test_client.get("/test/")[1].status == 404
|
||||
|
||||
assert app.test_client.get("/one")[1].status == 200
|
||||
assert app.test_client.get("/one/")[1].status == 200
|
||||
@@ -870,19 +894,8 @@ def test_strict_slashes_behavior_adoption(app):
|
||||
assert app.test_client.get("/second")[1].status == 200
|
||||
assert app.test_client.get("/second/")[1].status == 404
|
||||
|
||||
bp2 = Blueprint("bp2", strict_slashes=False)
|
||||
|
||||
@bp2.get("/third")
|
||||
def third(request):
|
||||
return text("third")
|
||||
|
||||
app.blueprint(bp2)
|
||||
assert app.test_client.get("/third")[1].status == 200
|
||||
assert app.test_client.get("/third/")[1].status == 200
|
||||
|
||||
@app.get("/f1", strict_slashes=False)
|
||||
def f1(request):
|
||||
return text("f1")
|
||||
|
||||
assert app.test_client.get("/f1")[1].status == 200
|
||||
assert app.test_client.get("/f1/")[1].status == 200
|
||||
|
||||
1296
tests/test_routes.py
1296
tests/test_routes.py
File diff suppressed because it is too large
Load Diff
@@ -106,6 +106,7 @@ def test_static_file_bytes(app, static_file_directory, file_name):
|
||||
[dict(), list(), object()],
|
||||
)
|
||||
def test_static_file_invalid_path(app, static_file_directory, file_name):
|
||||
app.route("/")(lambda x: x)
|
||||
with pytest.raises(ValueError):
|
||||
app.static("/testing.file", file_name)
|
||||
request, response = app.test_client.get("/testing.file")
|
||||
|
||||
@@ -112,22 +112,21 @@ def test_fails_if_endpoint_not_found(app):
|
||||
def test_fails_url_build_if_param_not_passed(app):
|
||||
url = "/"
|
||||
|
||||
for letter in string.ascii_letters:
|
||||
for letter in string.ascii_lowercase:
|
||||
url += f"<{letter}>/"
|
||||
|
||||
@app.route(url)
|
||||
def fail(request):
|
||||
return text("this should fail")
|
||||
|
||||
fail_args = list(string.ascii_letters)
|
||||
fail_args = list(string.ascii_lowercase)
|
||||
fail_args.pop()
|
||||
|
||||
fail_kwargs = {l: l for l in fail_args}
|
||||
|
||||
with pytest.raises(URLBuildError) as e:
|
||||
app.url_for("fail", **fail_kwargs)
|
||||
|
||||
assert "Required parameter `Z` was not passed to url_for" in str(e.value)
|
||||
assert e.match("Required parameter `z` was not passed to url_for")
|
||||
|
||||
|
||||
def test_fails_url_build_if_params_not_passed(app):
|
||||
@@ -137,8 +136,7 @@ def test_fails_url_build_if_params_not_passed(app):
|
||||
|
||||
with pytest.raises(ValueError) as e:
|
||||
app.url_for("fail", _scheme="http")
|
||||
|
||||
assert str(e.value) == "When specifying _scheme, _external must be True"
|
||||
assert e.match("When specifying _scheme, _external must be True")
|
||||
|
||||
|
||||
COMPLEX_PARAM_URL = (
|
||||
@@ -168,7 +166,7 @@ def test_fails_with_int_message(app):
|
||||
|
||||
expected_error = (
|
||||
r'Value "not_int" for parameter `foo` '
|
||||
r"does not match pattern for type `int`: -?\d+"
|
||||
r"does not match pattern for type `int`: ^-?\d+"
|
||||
)
|
||||
assert str(e.value) == expected_error
|
||||
|
||||
@@ -199,13 +197,10 @@ def test_fails_with_two_letter_string_message(app):
|
||||
|
||||
with pytest.raises(URLBuildError) as e:
|
||||
app.url_for("fail", **failing_kwargs)
|
||||
|
||||
expected_error = (
|
||||
'Value "foobar" for parameter `two_letter_string` '
|
||||
"does not satisfy pattern [A-z]{2}"
|
||||
)
|
||||
|
||||
assert str(e.value) == expected_error
|
||||
e.match(
|
||||
'Value "foobar" for parameter `two_letter_string` '
|
||||
"does not satisfy pattern ^[A-z]{2}$"
|
||||
)
|
||||
|
||||
|
||||
def test_fails_with_number_message(app):
|
||||
@@ -218,13 +213,10 @@ def test_fails_with_number_message(app):
|
||||
|
||||
with pytest.raises(URLBuildError) as e:
|
||||
app.url_for("fail", **failing_kwargs)
|
||||
|
||||
expected_error = (
|
||||
'Value "foo" for parameter `some_number` '
|
||||
r"does not match pattern for type `float`: -?(?:\d+(?:\.\d*)?|\.\d+)"
|
||||
)
|
||||
|
||||
assert str(e.value) == expected_error
|
||||
e.match(
|
||||
'Value "foo" for parameter `some_number` '
|
||||
r"does not match pattern for type `float`: ^-?(?:\d+(?:\.\d*)?|\.\d+)$"
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("number", [3, -3, 13.123, -13.123])
|
||||
@@ -273,11 +265,11 @@ def blueprint_app(app):
|
||||
return text(f"foo from first : {param}")
|
||||
|
||||
@second_print.route("/foo") # noqa
|
||||
def foo(request):
|
||||
def bar(request):
|
||||
return text("foo from second")
|
||||
|
||||
@second_print.route("/foo/<param>") # noqa
|
||||
def foo_with_param(request, param):
|
||||
def bar_with_param(request, param):
|
||||
return text(f"foo from second : {param}")
|
||||
|
||||
app.blueprint(first_print)
|
||||
@@ -290,7 +282,7 @@ def test_blueprints_are_named_correctly(blueprint_app):
|
||||
first_url = blueprint_app.url_for("first.foo")
|
||||
assert first_url == "/first/foo"
|
||||
|
||||
second_url = blueprint_app.url_for("second.foo")
|
||||
second_url = blueprint_app.url_for("second.bar")
|
||||
assert second_url == "/second/foo"
|
||||
|
||||
|
||||
@@ -298,7 +290,7 @@ def test_blueprints_work_with_params(blueprint_app):
|
||||
first_url = blueprint_app.url_for("first.foo_with_param", param="bar")
|
||||
assert first_url == "/first/foo/bar"
|
||||
|
||||
second_url = blueprint_app.url_for("second.foo_with_param", param="bar")
|
||||
second_url = blueprint_app.url_for("second.bar_with_param", param="bar")
|
||||
assert second_url == "/second/foo/bar"
|
||||
|
||||
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
import asyncio
|
||||
|
||||
import pytest
|
||||
|
||||
from sanic_testing.testing import SanicTestClient
|
||||
|
||||
from sanic.blueprints import Blueprint
|
||||
|
||||
|
||||
def test_routes_with_host(app):
|
||||
@app.route("/")
|
||||
@app.route("/", name="hostindex", host="example.com")
|
||||
@app.route("/path", name="hostpath", host="path.example.com")
|
||||
def index(request):
|
||||
pass
|
||||
|
||||
assert app.url_for("index") == "/"
|
||||
assert app.url_for("hostindex") == "/"
|
||||
assert app.url_for("hostpath") == "/path"
|
||||
assert app.url_for("hostindex", _external=True) == "http://example.com/"
|
||||
@@ -22,6 +22,27 @@ def test_routes_with_host(app):
|
||||
)
|
||||
|
||||
|
||||
def test_routes_with_multiple_hosts(app):
|
||||
@app.route("/", name="hostindex", host=["example.com", "path.example.com"])
|
||||
def index(request):
|
||||
pass
|
||||
|
||||
assert app.url_for("hostindex") == "/"
|
||||
assert (
|
||||
app.url_for("hostindex", _host="example.com") == "http://example.com/"
|
||||
)
|
||||
|
||||
with pytest.raises(ValueError) as e:
|
||||
assert app.url_for("hostindex", _external=True)
|
||||
assert str(e.value).startswith("Host is ambiguous")
|
||||
|
||||
with pytest.raises(ValueError) as e:
|
||||
assert app.url_for("hostindex", _host="unknown.com")
|
||||
assert str(e.value).startswith(
|
||||
"Requested host (unknown.com) is not available for this route"
|
||||
)
|
||||
|
||||
|
||||
def test_websocket_bp_route_name(app):
|
||||
"""Tests that blueprint websocket route is named."""
|
||||
event = asyncio.Event()
|
||||
@@ -63,3 +84,7 @@ def test_websocket_bp_route_name(app):
|
||||
|
||||
uri = app.url_for("test_bp.foobar_3")
|
||||
assert uri == "/bp/route3"
|
||||
|
||||
|
||||
# TODO: add test with a route with multiple hosts
|
||||
# TODO: add test with a route with _host in url_for
|
||||
|
||||
@@ -3,6 +3,7 @@ import os
|
||||
|
||||
import pytest
|
||||
|
||||
from sanic import Sanic
|
||||
from sanic.blueprints import Blueprint
|
||||
|
||||
|
||||
@@ -26,9 +27,15 @@ def get_file_content(static_file_directory, file_name):
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"file_name", ["test.file", "decode me.txt", "python.png"]
|
||||
"file_name",
|
||||
[
|
||||
"test.file",
|
||||
"decode me.txt",
|
||||
"python.png",
|
||||
],
|
||||
)
|
||||
def test_static_file(app, static_file_directory, file_name):
|
||||
def test_static_file(static_file_directory, file_name):
|
||||
app = Sanic("qq")
|
||||
app.static(
|
||||
"/testing.file", get_file_path(static_file_directory, file_name)
|
||||
)
|
||||
@@ -38,6 +45,8 @@ def test_static_file(app, static_file_directory, file_name):
|
||||
name="testing_file",
|
||||
)
|
||||
|
||||
app.router.finalize()
|
||||
|
||||
uri = app.url_for("static")
|
||||
uri2 = app.url_for("static", filename="any")
|
||||
uri3 = app.url_for("static", name="static", filename="any")
|
||||
@@ -46,10 +55,14 @@ def test_static_file(app, static_file_directory, file_name):
|
||||
assert uri == uri2
|
||||
assert uri2 == uri3
|
||||
|
||||
app.router.reset()
|
||||
|
||||
request, response = app.test_client.get(uri)
|
||||
assert response.status == 200
|
||||
assert response.body == get_file_content(static_file_directory, file_name)
|
||||
|
||||
app.router.reset()
|
||||
|
||||
bp = Blueprint("test_bp_static", url_prefix="/bp")
|
||||
|
||||
bp.static("/testing.file", get_file_path(static_file_directory, file_name))
|
||||
@@ -61,19 +74,14 @@ def test_static_file(app, static_file_directory, file_name):
|
||||
|
||||
app.blueprint(bp)
|
||||
|
||||
uri = app.url_for("static", name="test_bp_static.static")
|
||||
uri2 = app.url_for("static", name="test_bp_static.static", filename="any")
|
||||
uri3 = app.url_for("test_bp_static.static")
|
||||
uri4 = app.url_for("test_bp_static.static", name="any")
|
||||
uri5 = app.url_for("test_bp_static.static", filename="any")
|
||||
uri6 = app.url_for("test_bp_static.static", name="any", filename="any")
|
||||
uris = [
|
||||
app.url_for("static", name="test_bp_static.static"),
|
||||
app.url_for("static", name="test_bp_static.static", filename="any"),
|
||||
app.url_for("test_bp_static.static"),
|
||||
app.url_for("test_bp_static.static", filename="any"),
|
||||
]
|
||||
|
||||
assert uri == "/bp/testing.file"
|
||||
assert uri == uri2
|
||||
assert uri2 == uri3
|
||||
assert uri3 == uri4
|
||||
assert uri4 == uri5
|
||||
assert uri5 == uri6
|
||||
assert all(uri == "/bp/testing.file" for uri in uris)
|
||||
|
||||
request, response = app.test_client.get(uri)
|
||||
assert response.status == 200
|
||||
@@ -112,7 +120,9 @@ def test_static_file(app, static_file_directory, file_name):
|
||||
|
||||
@pytest.mark.parametrize("file_name", ["test.file", "decode me.txt"])
|
||||
@pytest.mark.parametrize("base_uri", ["/static", "", "/dir"])
|
||||
def test_static_directory(app, file_name, base_uri, static_file_directory):
|
||||
def test_static_directory(file_name, base_uri, static_file_directory):
|
||||
app = Sanic("base")
|
||||
|
||||
app.static(base_uri, static_file_directory)
|
||||
base_uri2 = base_uri + "/2"
|
||||
app.static(base_uri2, static_file_directory, name="uploads")
|
||||
@@ -141,6 +151,8 @@ def test_static_directory(app, file_name, base_uri, static_file_directory):
|
||||
|
||||
bp.static(base_uri, static_file_directory)
|
||||
bp.static(base_uri2, static_file_directory, name="uploads")
|
||||
|
||||
app.router.reset()
|
||||
app.blueprint(bp)
|
||||
|
||||
uri = app.url_for(
|
||||
@@ -169,7 +181,8 @@ def test_static_directory(app, file_name, base_uri, static_file_directory):
|
||||
|
||||
|
||||
@pytest.mark.parametrize("file_name", ["test.file", "decode me.txt"])
|
||||
def test_static_head_request(app, file_name, static_file_directory):
|
||||
def test_static_head_request(file_name, static_file_directory):
|
||||
app = Sanic("base")
|
||||
app.static(
|
||||
"/testing.file",
|
||||
get_file_path(static_file_directory, file_name),
|
||||
@@ -214,7 +227,8 @@ def test_static_head_request(app, file_name, static_file_directory):
|
||||
|
||||
|
||||
@pytest.mark.parametrize("file_name", ["test.file", "decode me.txt"])
|
||||
def test_static_content_range_correct(app, file_name, static_file_directory):
|
||||
def test_static_content_range_correct(file_name, static_file_directory):
|
||||
app = Sanic("base")
|
||||
app.static(
|
||||
"/testing.file",
|
||||
get_file_path(static_file_directory, file_name),
|
||||
@@ -252,11 +266,6 @@ def test_static_content_range_correct(app, file_name, static_file_directory):
|
||||
"static", name="test_bp_static.static", filename="any"
|
||||
)
|
||||
assert uri == app.url_for("test_bp_static.static")
|
||||
assert uri == app.url_for("test_bp_static.static", name="any")
|
||||
assert uri == app.url_for("test_bp_static.static", filename="any")
|
||||
assert uri == app.url_for(
|
||||
"test_bp_static.static", name="any", filename="any"
|
||||
)
|
||||
|
||||
request, response = app.test_client.get(uri, headers=headers)
|
||||
assert response.status == 206
|
||||
@@ -270,7 +279,8 @@ def test_static_content_range_correct(app, file_name, static_file_directory):
|
||||
|
||||
|
||||
@pytest.mark.parametrize("file_name", ["test.file", "decode me.txt"])
|
||||
def test_static_content_range_front(app, file_name, static_file_directory):
|
||||
def test_static_content_range_front(file_name, static_file_directory):
|
||||
app = Sanic("base")
|
||||
app.static(
|
||||
"/testing.file",
|
||||
get_file_path(static_file_directory, file_name),
|
||||
@@ -308,11 +318,7 @@ def test_static_content_range_front(app, file_name, static_file_directory):
|
||||
"static", name="test_bp_static.static", filename="any"
|
||||
)
|
||||
assert uri == app.url_for("test_bp_static.static")
|
||||
assert uri == app.url_for("test_bp_static.static", name="any")
|
||||
assert uri == app.url_for("test_bp_static.static", filename="any")
|
||||
assert uri == app.url_for(
|
||||
"test_bp_static.static", name="any", filename="any"
|
||||
)
|
||||
|
||||
request, response = app.test_client.get(uri, headers=headers)
|
||||
assert response.status == 206
|
||||
@@ -326,7 +332,8 @@ def test_static_content_range_front(app, file_name, static_file_directory):
|
||||
|
||||
|
||||
@pytest.mark.parametrize("file_name", ["test.file", "decode me.txt"])
|
||||
def test_static_content_range_back(app, file_name, static_file_directory):
|
||||
def test_static_content_range_back(file_name, static_file_directory):
|
||||
app = Sanic("base")
|
||||
app.static(
|
||||
"/testing.file",
|
||||
get_file_path(static_file_directory, file_name),
|
||||
@@ -364,11 +371,7 @@ def test_static_content_range_back(app, file_name, static_file_directory):
|
||||
"static", name="test_bp_static.static", filename="any"
|
||||
)
|
||||
assert uri == app.url_for("test_bp_static.static")
|
||||
assert uri == app.url_for("test_bp_static.static", name="any")
|
||||
assert uri == app.url_for("test_bp_static.static", filename="any")
|
||||
assert uri == app.url_for(
|
||||
"test_bp_static.static", name="any", filename="any"
|
||||
)
|
||||
|
||||
request, response = app.test_client.get(uri, headers=headers)
|
||||
assert response.status == 206
|
||||
@@ -382,7 +385,8 @@ def test_static_content_range_back(app, file_name, static_file_directory):
|
||||
|
||||
|
||||
@pytest.mark.parametrize("file_name", ["test.file", "decode me.txt"])
|
||||
def test_static_content_range_empty(app, file_name, static_file_directory):
|
||||
def test_static_content_range_empty(file_name, static_file_directory):
|
||||
app = Sanic("base")
|
||||
app.static(
|
||||
"/testing.file",
|
||||
get_file_path(static_file_directory, file_name),
|
||||
@@ -420,11 +424,7 @@ def test_static_content_range_empty(app, file_name, static_file_directory):
|
||||
"static", name="test_bp_static.static", filename="any"
|
||||
)
|
||||
assert uri == app.url_for("test_bp_static.static")
|
||||
assert uri == app.url_for("test_bp_static.static", name="any")
|
||||
assert uri == app.url_for("test_bp_static.static", filename="any")
|
||||
assert uri == app.url_for(
|
||||
"test_bp_static.static", name="any", filename="any"
|
||||
)
|
||||
|
||||
request, response = app.test_client.get(uri)
|
||||
assert response.status == 200
|
||||
@@ -440,6 +440,7 @@ def test_static_content_range_empty(app, file_name, static_file_directory):
|
||||
|
||||
@pytest.mark.parametrize("file_name", ["test.file", "decode me.txt"])
|
||||
def test_static_content_range_error(app, file_name, static_file_directory):
|
||||
app = Sanic("base")
|
||||
app.static(
|
||||
"/testing.file",
|
||||
get_file_path(static_file_directory, file_name),
|
||||
@@ -475,11 +476,7 @@ def test_static_content_range_error(app, file_name, static_file_directory):
|
||||
"static", name="test_bp_static.static", filename="any"
|
||||
)
|
||||
assert uri == app.url_for("test_bp_static.static")
|
||||
assert uri == app.url_for("test_bp_static.static", name="any")
|
||||
assert uri == app.url_for("test_bp_static.static", filename="any")
|
||||
assert uri == app.url_for(
|
||||
"test_bp_static.static", name="any", filename="any"
|
||||
)
|
||||
|
||||
request, response = app.test_client.get(uri, headers=headers)
|
||||
assert response.status == 416
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
import pytest
|
||||
|
||||
from sanic_routing.exceptions import RouteExists
|
||||
|
||||
from sanic.response import text
|
||||
|
||||
|
||||
@@ -38,13 +42,12 @@ def test_vhosts_with_defaults(app):
|
||||
async def handler1(request):
|
||||
return text("Hello, world!")
|
||||
|
||||
@app.route("/")
|
||||
async def handler2(request):
|
||||
return text("default")
|
||||
with pytest.raises(RouteExists):
|
||||
|
||||
@app.route("/")
|
||||
async def handler2(request):
|
||||
return text("default")
|
||||
|
||||
headers = {"Host": "hello.com"}
|
||||
request, response = app.test_client.get("/", headers=headers)
|
||||
assert response.text == "Hello, world!"
|
||||
|
||||
request, response = app.test_client.get("/")
|
||||
assert response.text == "default"
|
||||
|
||||
Reference in New Issue
Block a user