Coverage for tests / test_tutorial / test_delete / test_tutorial001_tutorial002.py: 100%

20 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2026-06-10 09:40 +0000

1import importlib 1abcdefgh

2from types import ModuleType 1abcdefgh

3 

4import pytest 1abcdefgh

5from sqlmodel import create_engine 1abcdefgh

6 

7from ...conftest import PrintMock 1abcdefgh

8 

9expected_calls = [ 1abcdefgh

10 [ 

11 "Hero 1:", 

12 {"id": 2, "name": "Spider-Boy", "secret_name": "Pedro Parqueador", "age": None}, 

13 ], 

14 [ 

15 "Hero 2:", 

16 { 

17 "id": 7, 

18 "name": "Captain North America", 

19 "secret_name": "Esteban Rogelios", 

20 "age": 93, 

21 }, 

22 ], 

23 [ 

24 "Updated hero 1:", 

25 { 

26 "id": 2, 

27 "name": "Spider-Youngster", 

28 "secret_name": "Pedro Parqueador", 

29 "age": 16, 

30 }, 

31 ], 

32 [ 

33 "Updated hero 2:", 

34 { 

35 "id": 7, 

36 "name": "Captain North America Except Canada", 

37 "secret_name": "Esteban Rogelios", 

38 "age": 110, 

39 }, 

40 ], 

41 [ 

42 "Hero: ", 

43 { 

44 "id": 2, 

45 "name": "Spider-Youngster", 

46 "secret_name": "Pedro Parqueador", 

47 "age": 16, 

48 }, 

49 ], 

50 [ 

51 "Deleted hero:", 

52 { 

53 "id": 2, 

54 "name": "Spider-Youngster", 

55 "secret_name": "Pedro Parqueador", 

56 "age": 16, 

57 }, 

58 ], 

59 ["There's no hero named Spider-Youngster"], 

60] 

61 

62 

63@pytest.fixture(name="module") 1abcdefgh

64def get_module(request: pytest.FixtureRequest) -> ModuleType: 1abcdefgh

65 module = importlib.import_module(f"docs_src.tutorial.delete.{request.param}") 1abcdefgh

66 module.sqlite_url = "sqlite://" 1abcdefgh

67 module.engine = create_engine(module.sqlite_url) 1abcdefgh

68 return module 1abcdefgh

69 

70 

71@pytest.mark.parametrize( 1abcdefgh

72 "module", 

73 [ 

74 pytest.param("tutorial001_py310"), 

75 ], 

76 indirect=True, 

77) 

78def test_tutorial001(print_mock: PrintMock, module: ModuleType): 1abcdefgh

79 module.main() 1ijklmnop

80 assert print_mock.calls == expected_calls 1ijklmnop

81 

82 

83@pytest.mark.parametrize( 1abcdefgh

84 "module", 

85 [ 

86 pytest.param("tutorial002_py310"), 

87 ], 

88 indirect=True, 

89) 

90def test_tutorial002(print_mock: PrintMock, module: ModuleType): 1abcdefgh

91 module.main() 1qrstuvwx

92 assert print_mock.calls == expected_calls 1qrstuvwx