Coverage for tests / test_tutorial / test_testing_dependencies / test_tutorial001.py: 100%

39 statements  

« prev     ^ index     » next       coverage.py v7.13.3, created at 2026-02-12 18:15 +0000

1import importlib 1abdc

2from types import ModuleType 1abdc

3 

4import pytest 1abdc

5 

6from ...utils import needs_py310 1abdc

7 

8 

9@pytest.fixture( 1abdc

10 name="test_module", 

11 params=[ 

12 pytest.param("tutorial001_py310", marks=needs_py310), 

13 pytest.param("tutorial001_an_py310", marks=needs_py310), 

14 ], 

15) 

16def get_test_module(request: pytest.FixtureRequest) -> ModuleType: 1abdc

17 mod: ModuleType = importlib.import_module( 1abc

18 f"docs_src.dependency_testing.{request.param}" 

19 ) 

20 return mod 1abc

21 

22 

23def test_override_in_items_run(test_module: ModuleType): 1abdc

24 test_override_in_items = test_module.test_override_in_items 1qrs

25 

26 test_override_in_items() 1qrs

27 

28 

29def test_override_in_items_with_q_run(test_module: ModuleType): 1abdc

30 test_override_in_items_with_q = test_module.test_override_in_items_with_q 1tuv

31 

32 test_override_in_items_with_q() 1tuv

33 

34 

35def test_override_in_items_with_params_run(test_module: ModuleType): 1abdc

36 test_override_in_items_with_params = test_module.test_override_in_items_with_params 1wxy

37 

38 test_override_in_items_with_params() 1wxy

39 

40 

41def test_override_in_users(test_module: ModuleType): 1abdc

42 client = test_module.client 1hij

43 response = client.get("/users/") 1hij

44 assert response.status_code == 200, response.text 1hij

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

46 "message": "Hello Users!", 

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

48 } 

49 

50 

51def test_override_in_users_with_q(test_module: ModuleType): 1abdc

52 client = test_module.client 1klm

53 response = client.get("/users/?q=foo") 1klm

54 assert response.status_code == 200, response.text 1klm

55 assert response.json() == { 1klm

56 "message": "Hello Users!", 

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

58 } 

59 

60 

61def test_override_in_users_with_params(test_module: ModuleType): 1abdc

62 client = test_module.client 1nop

63 response = client.get("/users/?q=foo&skip=100&limit=200") 1nop

64 assert response.status_code == 200, response.text 1nop

65 assert response.json() == { 1nop

66 "message": "Hello Users!", 

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

68 } 

69 

70 

71def test_normal_app(test_module: ModuleType): 1abdc

72 app = test_module.app 1efg

73 client = test_module.client 1efg

74 app.dependency_overrides = None 1efg

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

76 assert response.status_code == 200, response.text 1efg

77 assert response.json() == { 1efg

78 "message": "Hello Items!", 

79 "params": {"q": "foo", "skip": 100, "limit": 200}, 

80 }