41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
from copy import deepcopy
|
|
|
|
from sanic import Blueprint, Sanic, blueprints, response
|
|
from sanic.response import text
|
|
|
|
|
|
def test_bp_copy(app: Sanic):
|
|
bp1 = Blueprint("test_bp1", version=1)
|
|
|
|
@bp1.route("/page")
|
|
def handle_request(request):
|
|
return text("Hello world!")
|
|
|
|
bp2 = bp1.copy(name="test_bp2", version=2)
|
|
assert id(bp1) != id(bp2)
|
|
|
|
app.blueprint(bp1)
|
|
app.blueprint(bp2)
|
|
bp3 = bp1.copy(name="test_bp3", version=3, with_registration=True)
|
|
bp4 = bp1.copy(name="test_bp4", version=4, with_ctx=True)
|
|
bp5 = bp1.copy(name="test_bp5", version=5, with_registration=False)
|
|
assert id(bp2) != id(bp3)
|
|
assert id(bp3) != id(bp4)
|
|
assert id(bp4) != id(bp5)
|
|
app.blueprint(bp5)
|
|
|
|
_, response = app.test_client.get("/v1/page")
|
|
assert "Hello world!" in response.text
|
|
|
|
_, response = app.test_client.get("/v2/page")
|
|
assert "Hello world!" in response.text
|
|
|
|
_, response = app.test_client.get("/v3/page")
|
|
assert "Hello world!" in response.text
|
|
|
|
_, response = app.test_client.get("/v4/page")
|
|
assert "Hello world!" in response.text
|
|
|
|
_, response = app.test_client.get("/v5/page")
|
|
assert "Hello world!" in response.text
|