Coverage for tests / test_tutorial / test_many_to_many / test_tutorial002.py: 100%

15 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 

9 

10@pytest.fixture( 1abcdefgh

11 name="mod", 

12 params=[ 

13 pytest.param("tutorial002_py310"), 

14 ], 

15) 

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

17 mod = importlib.import_module(f"docs_src.tutorial.many_to_many.{request.param}") 1abcdefgh

18 mod.sqlite_url = "sqlite://" 1abcdefgh

19 mod.engine = create_engine(mod.sqlite_url) 1abcdefgh

20 return mod 1abcdefgh

21 

22 

23expected_calls = [ 1abcdefgh

24 [ 

25 "Deadpond:", 

26 {"id": 1, "secret_name": "Dive Wilson", "age": None, "name": "Deadpond"}, 

27 ], 

28 [ 

29 "Deadpond teams:", 

30 [ 

31 {"id": 1, "name": "Z-Force", "headquarters": "Sister Margaret's Bar"}, 

32 {"id": 2, "name": "Preventers", "headquarters": "Sharp Tower"}, 

33 ], 

34 ], 

35 [ 

36 "Rusty-Man:", 

37 {"id": 2, "secret_name": "Tommy Sharp", "age": 48, "name": "Rusty-Man"}, 

38 ], 

39 [ 

40 "Rusty-Man Teams:", 

41 [{"id": 2, "name": "Preventers", "headquarters": "Sharp Tower"}], 

42 ], 

43 [ 

44 "Spider-Boy:", 

45 {"id": 3, "secret_name": "Pedro Parqueador", "age": None, "name": "Spider-Boy"}, 

46 ], 

47 [ 

48 "Spider-Boy Teams:", 

49 [{"id": 2, "name": "Preventers", "headquarters": "Sharp Tower"}], 

50 ], 

51 [ 

52 "Updated Spider-Boy's Teams:", 

53 [ 

54 {"id": 2, "name": "Preventers", "headquarters": "Sharp Tower"}, 

55 {"id": 1, "name": "Z-Force", "headquarters": "Sister Margaret's Bar"}, 

56 ], 

57 ], 

58 [ 

59 "Z-Force heroes:", 

60 [ 

61 {"id": 1, "secret_name": "Dive Wilson", "age": None, "name": "Deadpond"}, 

62 { 

63 "id": 3, 

64 "secret_name": "Pedro Parqueador", 

65 "age": None, 

66 "name": "Spider-Boy", 

67 }, 

68 ], 

69 ], 

70 [ 

71 "Reverted Z-Force's heroes:", 

72 [{"id": 1, "secret_name": "Dive Wilson", "age": None, "name": "Deadpond"}], 

73 ], 

74 [ 

75 "Reverted Spider-Boy's teams:", 

76 [{"id": 2, "name": "Preventers", "headquarters": "Sharp Tower"}], 

77 ], 

78] 

79 

80 

81def test_tutorial(print_mock: PrintMock, mod: ModuleType): 1abcdefgh

82 mod.main() 1ijklmnop

83 assert print_mock.calls == expected_calls 1ijklmnop