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-05-05 00:03 +0000

1import importlib 1abcdef

2from types import ModuleType 1abcdef

3 

4import pytest 1abcdef

5 

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

7 

8 

9@pytest.fixture( 1abcdef

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: 1abcdef

20 mod: ModuleType = importlib.import_module( 1abcdef

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

22 ) 

23 return mod 1abcdef

24 

25 

26def test_override_in_items_run(test_module: ModuleType): 1abcdef

27 test_override_in_items = test_module.test_override_in_items 1EFGHIJ

28 

29 test_override_in_items() 1EFGHIJ

30 

31 

32def test_override_in_items_with_q_run(test_module: ModuleType): 1abcdef

33 test_override_in_items_with_q = test_module.test_override_in_items_with_q 1KLMNOP

34 

35 test_override_in_items_with_q() 1KLMNOP

36 

37 

38def test_override_in_items_with_params_run(test_module: ModuleType): 1abcdef

39 test_override_in_items_with_params = test_module.test_override_in_items_with_params 1QRSTUV

40 

41 test_override_in_items_with_params() 1QRSTUV

42 

43 

44def test_override_in_users(test_module: ModuleType): 1abcdef

45 client = test_module.client 1mnopqr

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

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

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

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): 1abcdef

55 client = test_module.client 1stuvwx

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

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

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

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): 1abcdef

65 client = test_module.client 1yzABCD

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

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

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

69 "message": "Hello Users!", 

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

71 } 

72 

73 

74def test_normal_app(test_module: ModuleType): 1abcdef

75 app = test_module.app 1ghijkl

76 client = test_module.client 1ghijkl

77 app.dependency_overrides = None 1ghijkl

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

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

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

81 "message": "Hello Items!", 

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

83 }