mirror of https://github.com/tiangolo/fastapi.git
68 lines
1.1 KiB
Python
68 lines
1.1 KiB
Python
from fastapi import APIRouter, FastAPI
|
|
from fastapi.testclient import TestClient
|
|
|
|
app = FastAPI()
|
|
app2 = FastAPI()
|
|
app3 = FastAPI()
|
|
app4 = FastAPI()
|
|
|
|
|
|
@app.get("/a")
|
|
async def a():
|
|
return "a"
|
|
|
|
|
|
@app2.get("/b")
|
|
async def b():
|
|
return "b"
|
|
|
|
|
|
app.mount("/2", app2)
|
|
|
|
|
|
@app3.get("/c")
|
|
def c():
|
|
return "c"
|
|
|
|
|
|
router = APIRouter()
|
|
router.mount("/3", app3)
|
|
app.include_router(router)
|
|
|
|
|
|
@app4.get("/")
|
|
def d():
|
|
return "d"
|
|
|
|
|
|
router2 = APIRouter()
|
|
router2.mount("/", app4)
|
|
app.include_router(router2)
|
|
|
|
client = TestClient(app)
|
|
|
|
|
|
def test_a():
|
|
response = client.get("/a")
|
|
assert response.status_code == 200, response.text
|
|
assert response.json() == "a"
|
|
|
|
|
|
def test_b():
|
|
response = client.get("/2/b")
|
|
assert response.status_code == 200, response.text
|
|
assert response.json() == "b"
|
|
|
|
|
|
def test_c():
|
|
response = client.get("/3/c")
|
|
assert response.status_code == 200, response.text
|
|
assert response.json() == "c"
|
|
|
|
|
|
def test_mount():
|
|
response = client.get("/")
|
|
assert response.status_code == 200, response.text
|
|
assert response.json() == "d"
|
|
assert router2.routes[0].path == "/"
|