Coverage for docs_src/dependency_testing/tutorial001_an_py310.py: 100%

28 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-05-05 00:03 +0000

1from typing import Annotated 1abcd

2 

3from fastapi import Depends, FastAPI 1abcd

4from fastapi.testclient import TestClient 1abcd

5 

6app = FastAPI() 1abcd

7 

8 

9async def common_parameters(q: str | None = None, skip: int = 0, limit: int = 100): 1abcd

10 return {"q": q, "skip": skip, "limit": limit} 1qrst

11 

12 

13@app.get("/items/") 1abcd

14async def read_items(commons: Annotated[dict, Depends(common_parameters)]): 1abcd

15 return {"message": "Hello Items!", "params": commons} 1qefgrhijsklmtnop

16 

17 

18@app.get("/users/") 1abcd

19async def read_users(commons: Annotated[dict, Depends(common_parameters)]): 1abcd

20 return {"message": "Hello Users!", "params": commons} 1uvwxyzABCDEF

21 

22 

23client = TestClient(app) 1abcd

24 

25 

26async def override_dependency(q: str | None = None): 1abcd

27 return {"q": q, "skip": 5, "limit": 10} 1efguvwhijxyzklmABCnopDEF

28 

29 

30app.dependency_overrides[common_parameters] = override_dependency 1abcd

31 

32 

33def test_override_in_items(): 1abcd

34 response = client.get("/items/") 1ehkn

35 assert response.status_code == 200 1ehkn

36 assert response.json() == { 1ehkn

37 "message": "Hello Items!", 

38 "params": {"q": None, "skip": 5, "limit": 10}, 

39 } 

40 

41 

42def test_override_in_items_with_q(): 1abcd

43 response = client.get("/items/?q=foo") 1gjmp

44 assert response.status_code == 200 1gjmp

45 assert response.json() == { 1gjmp

46 "message": "Hello Items!", 

47 "params": {"q": "foo", "skip": 5, "limit": 10}, 

48 } 

49 

50 

51def test_override_in_items_with_params(): 1abcd

52 response = client.get("/items/?q=foo&skip=100&limit=200") 1filo

53 assert response.status_code == 200 1filo

54 assert response.json() == { 1filo

55 "message": "Hello Items!", 

56 "params": {"q": "foo", "skip": 5, "limit": 10}, 

57 }