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
10 def test_tutorial(clear_sqlmodel):
11 from docs_src.tutorial.relationship_attributes.cascade_delete_relationships import (
15 mod.sqlite_url = "sqlite://"
16 mod.engine = create_engine(mod.sqlite_url)
19 new_print = get_testing_print_function(calls)
21 with patch("builtins.print", new=new_print):
22 mod.create_db_and_tables()
24 mod.select_deleted_heroes()
25 with Session(mod.engine) as session:
27 select(mod.Team).where(mod.Team.name == "Wakaland")
40 "secret_name": "Dive Wilson",
50 "secret_name": "Tommy Sharp",
60 "secret_name": "Pedro Parqueador",
70 "secret_name": "Pedro Parqueador",
76 {"headquarters": "Wakaland Capital City", "id": 3, "name": "Wakaland"},
79 "Black Lion has no team:",
84 "secret_name": "Trevor Challa",
89 "Princess Sure-E has no team:",
93 "name": "Princess Sure-E",
94 "secret_name": "Sure-E",
100 {"headquarters": "Wakaland Capital City", "id": 3, "name": "Wakaland"},
104 with pytest.raises(IntegrityError) as exc:
106 assert "FOREIGN KEY constraint failed" in str(exc.value)