Coverage for tests/test_router_redirect_slashes.py: 100%

26 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-12-04 08:29 +0000

1from fastapi import APIRouter, FastAPI 1opqrstu

2from fastapi.testclient import TestClient 1opqrstu

3 

4 

5def test_redirect_slashes_enabled(): 1opqrstu

6 app = FastAPI() 1abcdefg

7 router = APIRouter() 1abcdefg

8 

9 @router.get("/hello/") 1abcdefg

10 def hello_page() -> str: 1abcdefg

11 return "Hello, World!" 1abcdefg

12 

13 app.include_router(router) 1abcdefg

14 

15 client = TestClient(app) 1abcdefg

16 

17 response = client.get("/hello/", follow_redirects=False) 1abcdefg

18 assert response.status_code == 200 1abcdefg

19 

20 response = client.get("/hello", follow_redirects=False) 1abcdefg

21 assert response.status_code == 307 1abcdefg

22 

23 

24def test_redirect_slashes_disabled(): 1opqrstu

25 app = FastAPI(redirect_slashes=False) 1hijklmn

26 router = APIRouter() 1hijklmn

27 

28 @router.get("/hello/") 1hijklmn

29 def hello_page() -> str: 1hijklmn

30 return "Hello, World!" 1hijklmn

31 

32 app.include_router(router) 1hijklmn

33 

34 client = TestClient(app) 1hijklmn

35 

36 response = client.get("/hello/", follow_redirects=False) 1hijklmn

37 assert response.status_code == 200 1hijklmn

38 

39 response = client.get("/hello", follow_redirects=False) 1hijklmn

40 assert response.status_code == 404 1hijklmn