import importlib from types import ModuleType import pytest from sqlmodel import create_engine from ...conftest import PrintMock, needs_py310 @pytest.fixture( name="mod", params=[ "tutorial009", pytest.param("tutorial009_py310", marks=needs_py310), ], ) def get_module(request: pytest.FixtureRequest) -> ModuleType: mod = importlib.import_module(f"docs_src.tutorial.where.{request.param}") mod.sqlite_url = "sqlite://" mod.engine = create_engine(mod.sqlite_url) return mod def test_tutorial(print_mock: PrintMock, mod: ModuleType): mod.main() assert print_mock.calls == [ [{"name": "Tarantula", "secret_name": "Natalia Roman-on", "age": 32, "id": 4}], [{"name": "Black Lion", "secret_name": "Trevor Challa", "age": 35, "id": 5}], [ { "name": "Captain North America", "secret_name": "Esteban Rogelios", "age": 93, "id": 7, } ], ]