Coverage for tests / test_tutorial / test_relationship_attributes / test_back_populates / test_tutorial003.py: 100%

19 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 sqlalchemy import inspect 1abcdefgh

6from sqlalchemy.engine.reflection import Inspector 1abcdefgh

7from sqlmodel import create_engine 1abcdefgh

8 

9 

10@pytest.fixture( 1abcdefgh

11 name="mod", 

12 params=[ 

13 pytest.param("tutorial003_py310"), 

14 ], 

15) 

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

17 mod = importlib.import_module( 1abcdefgh

18 f"docs_src.tutorial.relationship_attributes.back_populates.{request.param}" 

19 ) 

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

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

22 return mod 1abcdefgh

23 

24 

25def test_tutorial(mod: ModuleType): 1abcdefgh

26 mod.main() 1ijklmnop

27 insp: Inspector = inspect(mod.engine) 1ijklmnop

28 assert insp.has_table(str(mod.Hero.__tablename__)) 1ijklmnop

29 assert insp.has_table(str(mod.Weapon.__tablename__)) 1ijklmnop

30 assert insp.has_table(str(mod.Power.__tablename__)) 1ijklmnop

31 assert insp.has_table(str(mod.Team.__tablename__)) 1ijklmnop