1 from unittest.mock import patch
4 from sqlalchemy.exc import IntegrityError
5 from sqlmodel import Session, create_engine, select
7 from tests.conftest import get_testing_print_function, needs_py310
11 def test_tutorial(clear_sqlmodel):
12 from docs_src.tutorial.relationship_attributes.cascade_delete_relationships import (
13 tutorial004_py310 as mod,
16 mod.sqlite_url = "sqlite://"
17 mod.engine = create_engine(mod.sqlite_url)
20 new_print = get_testing_print_function(calls)
22 with patch("builtins.print", new=new_print):
23 mod.create_db_and_tables()
25 mod.select_deleted_heroes()
26 with Session(mod.engine) as session:
28 select(mod.Team).where(mod.Team.name == "Wakaland")
41 "secret_name": "Dive Wilson",
51 "secret_name": "Tommy Sharp",
61 "secret_name": "Pedro Parqueador",
71 "secret_name": "Pedro Parqueador",
77 {"headquarters": "Wakaland Capital City", "id": 3, "name": "Wakaland"},
80 "Black Lion has no team:",
85 "secret_name": "Trevor Challa",
90 "Princess Sure-E has no team:",
94 "name": "Princess Sure-E",
95 "secret_name": "Sure-E",
101 {"headquarters": "Wakaland Capital City", "id": 3, "name": "Wakaland"},
105 with pytest.raises(IntegrityError) as exc:
107 assert "FOREIGN KEY constraint failed" in str(exc.value)