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

39 statements  

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

1import importlib 1abcdefg

2from types import ModuleType 1abcdefg

3 

4import pytest 1abcdefg

5 

6from ...utils import needs_py39, needs_py310 1abcdefg

7 

8 

9@pytest.fixture( 1abcdefg

10 name="test_module", 

11 params=[ 

12 "tutorial001", 

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

14 "tutorial001_an", 

15 pytest.param("tutorial001_an_py39", marks=needs_py39), 

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

17 ], 

18) 

19def get_test_module(request: pytest.FixtureRequest) -> ModuleType: 1abcdefg

20 mod: ModuleType = importlib.import_module( 1abcdefg

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

22 ) 

23 return mod 1abcdefg

24 

25 

26def test_override_in_items_run(test_module: ModuleType): 1abcdefg

27 test_override_in_items = test_module.test_override_in_items 1JKLMNOP

28 

29 test_override_in_items() 1JKLMNOP

30 

31 

32def test_override_in_items_with_q_run(test_module: ModuleType): 1abcdefg

33 test_override_in_items_with_q = test_module.test_override_in_items_with_q 1QRSTUVW

34 

35 test_override_in_items_with_q() 1QRSTUVW

36 

37 

38def test_override_in_items_with_params_run(test_module: ModuleType): 1abcdefg

39 test_override_in_items_with_params = test_module.test_override_in_items_with_params 1XYZ0123

40 

41 test_override_in_items_with_params() 1XYZ0123

42 

43 

44def test_override_in_users(test_module: ModuleType): 1abcdefg

45 client = test_module.client 1opqrstu

46 response = client.get("/users/") 1opqrstu

47 assert response.status_code == 200, response.text 1opqrstu

48 assert response.json() == { 1opqrstu

49 "message": "Hello Users!", 

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

51 } 

52 

53 

54def test_override_in_users_with_q(test_module: ModuleType): 1abcdefg

55 client = test_module.client 1vwxyzAB

56 response = client.get("/users/?q=foo") 1vwxyzAB

57 assert response.status_code == 200, response.text 1vwxyzAB

58 assert response.json() == { 1vwxyzAB

59 "message": "Hello Users!", 

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

61 } 

62 

63 

64def test_override_in_users_with_params(test_module: ModuleType): 1abcdefg

65 client = test_module.client 1CDEFGHI

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

67 assert response.status_code == 200, response.text 1CDEFGHI

68 assert response.json() == { 1CDEFGHI

69 "message": "Hello Users!", 

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

71 } 

72 

73 

74def test_normal_app(test_module: ModuleType): 1abcdefg

75 app = test_module.app 1hijklmn

76 client = test_module.client 1hijklmn

77 app.dependency_overrides = None 1hijklmn

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

79 assert response.status_code == 200, response.text 1hijklmn

80 assert response.json() == { 1hijklmn

81 "message": "Hello Items!", 

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

83 }