Browse Source

Fix: propagate Mount routes in include_router

pull/14984/head
Felipe Carvajal 5 months ago
parent
commit
33ee724f31
  1. 4
      fastapi/routing.py
  2. 4
      tests/test_router_mount.py

4
fastapi/routing.py

@ -1550,8 +1550,8 @@ class APIRouter(routing.Router):
prefix + route.path, route.endpoint, name=route.name prefix + route.path, route.endpoint, name=route.name
) )
elif isinstance(route, routing.Mount): elif isinstance(route, routing.Mount):
self.mount(prefix + route.path, route.app, route.name) self.mount(prefix + router.prefix + route.path, route.app, name=route.name)
for handler in router.on_startup: for handler in router.on_startup:
self.add_event_handler("startup", handler) self.add_event_handler("startup", handler)
for handler in router.on_shutdown: for handler in router.on_shutdown:

4
tests/test_router_mount.py

@ -1,4 +1,4 @@
from fastapi import APIRouter, FastAPI from fastapi import FastAPI, APIRouter
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
@ -22,4 +22,4 @@ def test_mount_on_router():
client = TestClient(app) client = TestClient(app)
assert client.get("/api/app").status_code == 200 assert client.get("/api/app").status_code == 200
assert client.get("/api/subapi/sub").status_code == 200 assert client.get("/api/subapi/sub").status_code == 200
Loading…
Cancel
Save