Coverage for tests / test_tutorial / test_select / test_tutorial001_tutorial002.py: 100%
24 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-01-06 21:09 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-01-06 21:09 +0000
1import importlib 1abcdefghi
2from types import ModuleType 1abcdefghi
3from typing import Any, Union 1abcdefghi
5import pytest 1abcdefghi
6from sqlmodel import create_engine 1abcdefghi
8from ...conftest import PrintMock, needs_py310 1abcdefghi
11def check_calls(calls: list[list[Union[str, dict[str, Any]]]]): 1abcdefghi
12 assert calls[0][0] == { 1jklmnopqrstuvwxyzA
13 "name": "Deadpond",
14 "secret_name": "Dive Wilson",
15 "age": None,
16 "id": 1,
17 }
18 assert calls[1][0] == { 1jklmnopqrstuvwxyzA
19 "name": "Spider-Boy",
20 "secret_name": "Pedro Parqueador",
21 "age": None,
22 "id": 2,
23 }
24 assert calls[2][0] == { 1jklmnopqrstuvwxyzA
25 "name": "Rusty-Man",
26 "secret_name": "Tommy Sharp",
27 "age": 48,
28 "id": 3,
29 }
32@pytest.fixture(name="module") 1abcdefghi
33def get_module(request: pytest.FixtureRequest) -> ModuleType: 1abcdefghi
34 module = importlib.import_module(f"docs_src.tutorial.select.{request.param}") 1abcdefghi
35 module.sqlite_url = "sqlite://" 1abcdefghi
36 module.engine = create_engine(module.sqlite_url) 1abcdefghi
37 return module 1abcdefghi
40@pytest.mark.parametrize( 1abcdefghi
41 "module",
42 [
43 pytest.param("tutorial001_py39"),
44 pytest.param("tutorial001_py310", marks=needs_py310),
45 ],
46 indirect=True,
47)
48def test_tutorial_001(print_mock: PrintMock, module: ModuleType): 1abcdefghi
49 module.main() 1jlnprtvxz
50 check_calls(print_mock.calls) 1jlnprtvxz
53@pytest.mark.parametrize( 1abcdefghi
54 "module",
55 [
56 pytest.param("tutorial002_py39"),
57 pytest.param("tutorial002_py310", marks=needs_py310),
58 ],
59 indirect=True,
60)
61def test_tutorial_002(print_mock: PrintMock, module: ModuleType): 1abcdefghi
62 module.main() 1kmoqsuwyA
63 check_calls(print_mock.calls) 1kmoqsuwyA