]> git.ipfire.org Git - thirdparty/fastapi/sqlmodel.git/commitdiff
🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
authorpre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Fri, 20 Jun 2025 12:49:14 +0000 (12:49 +0000)
committerpre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Fri, 20 Jun 2025 12:49:15 +0000 (12:49 +0000)
66 files changed:
tests/test_advanced/test_decimal/test_tutorial001.py
tests/test_tutorial/test_connect/test_delete/test_tutorial001.py
tests/test_tutorial/test_connect/test_insert/test_tutorial001.py
tests/test_tutorial/test_connect/test_select/test_tutorial003.py
tests/test_tutorial/test_connect/test_select/test_tutorial004.py
tests/test_tutorial/test_connect/test_select/test_tutorial005.py
tests/test_tutorial/test_connect/test_update/test_tutorial001.py
tests/test_tutorial/test_create_db_and_table/test_tutorial002.py
tests/test_tutorial/test_create_db_and_table/test_tutorial003.py
tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests_main.py
tests/test_tutorial/test_fastapi/test_delete/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_limit_and_offset/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial002.py
tests/test_tutorial/test_fastapi/test_read_one/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_relationships/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_response_model/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_session_with_dependency/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_simple_hero_api/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_teams/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_update/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_update/test_tutorial002.py
tests/test_tutorial/test_indexes/test_tutorial001.py
tests/test_tutorial/test_indexes/test_tutorial002.py
tests/test_tutorial/test_insert/test_tutorial001.py
tests/test_tutorial/test_insert/test_tutorial002.py
tests/test_tutorial/test_insert/test_tutorial003.py
tests/test_tutorial/test_limit_and_offset/test_tutorial001.py
tests/test_tutorial/test_limit_and_offset/test_tutorial002.py
tests/test_tutorial/test_limit_and_offset/test_tutorial003.py
tests/test_tutorial/test_limit_and_offset/test_tutorial004.py
tests/test_tutorial/test_many_to_many/test_tutorial001.py
tests/test_tutorial/test_many_to_many/test_tutorial002.py
tests/test_tutorial/test_many_to_many/test_tutorial003.py
tests/test_tutorial/test_one/test_tutorial001.py
tests/test_tutorial/test_one/test_tutorial002.py
tests/test_tutorial/test_one/test_tutorial003.py
tests/test_tutorial/test_one/test_tutorial004.py
tests/test_tutorial/test_one/test_tutorial005.py
tests/test_tutorial/test_one/test_tutorial006.py
tests/test_tutorial/test_one/test_tutorial007.py
tests/test_tutorial/test_one/test_tutorial008.py
tests/test_tutorial/test_one/test_tutorial009.py
tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial001.py
tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial002.py
tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial003.py
tests/test_tutorial/test_relationship_attributes/test_create_and_update_relationships/test_tutorial001.py
tests/test_tutorial/test_relationship_attributes/test_define_relationship_attributes/test_tutorial001.py
tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial001.py
tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial002.py
tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial003.py
tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial004.py
tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial005.py
tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial001.py
tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial002.py
tests/test_tutorial/test_where/test_tutorial001.py
tests/test_tutorial/test_where/test_tutorial002.py
tests/test_tutorial/test_where/test_tutorial003.py
tests/test_tutorial/test_where/test_tutorial004.py
tests/test_tutorial/test_where/test_tutorial005.py
tests/test_tutorial/test_where/test_tutorial006.py
tests/test_tutorial/test_where/test_tutorial007.py
tests/test_tutorial/test_where/test_tutorial008.py
tests/test_tutorial/test_where/test_tutorial009.py
tests/test_tutorial/test_where/test_tutorial010.py
tests/test_tutorial/test_where/test_tutorial011.py

index ee5bebc49f9b5b76db7b848a55320c299cfae5e6..db15d7095c0ced75423fc85f4179bb13eb1a18a4 100644 (file)
@@ -1,12 +1,11 @@
 import importlib
 import types
 from decimal import Decimal
-from unittest.mock import MagicMock # Keep MagicMock for type hint, though not strictly necessary for runtime
 
 import pytest
 from sqlmodel import create_engine
 
-from ...conftest import needs_py310, PrintMock # Import PrintMock for type hint
+from ...conftest import PrintMock, needs_py310  # Import PrintMock for type hint
 
 expected_calls = [
     [
@@ -49,4 +48,4 @@ def test_tutorial(print_mock: PrintMock, module: types.ModuleType):
     module.sqlite_url = "sqlite://"
     module.engine = create_engine(module.sqlite_url)
     module.main()
-    assert print_mock.calls == expected_calls # Use .calls instead of .mock_calls
+    assert print_mock.calls == expected_calls  # Use .calls instead of .mock_calls
index 04b68397bddc5e01a59eb9d9c6a45cd96ad4d7b1..7e1a1687e88bb3912cfb00abb9de80aa7a7314b5 100644 (file)
@@ -69,9 +69,7 @@ expected_calls = [
 )
 def get_module(request: pytest.FixtureRequest) -> ModuleType:
     module_name = request.param
-    mod = importlib.import_module(
-        f"docs_src.tutorial.connect.delete.{module_name}"
-    )
+    mod = importlib.import_module(f"docs_src.tutorial.connect.delete.{module_name}")
     mod.sqlite_url = "sqlite://"
     mod.engine = create_engine(mod.sqlite_url)
     return mod
index 5a29f5d89975844a210dd156e2fd5e691ecff933..2884de3e1a83c2944fc039ede9a63b189899a6a0 100644 (file)
@@ -49,9 +49,7 @@ expected_calls = [
 )
 def get_module(request: pytest.FixtureRequest) -> ModuleType:
     module_name = request.param
-    mod = importlib.import_module(
-        f"docs_src.tutorial.connect.insert.{module_name}"
-    )
+    mod = importlib.import_module(f"docs_src.tutorial.connect.insert.{module_name}")
     mod.sqlite_url = "sqlite://"
     mod.engine = create_engine(mod.sqlite_url)
     return mod
index 2b6d4235bbb6de52ae92218ffa6ab3557368d39a..bc5a9c383ec41e7ea81cd2c24c3d4d2109b896be 100644 (file)
@@ -85,9 +85,7 @@ expected_calls = [
 )
 def get_module(request: pytest.FixtureRequest) -> ModuleType:
     module_name = request.param
-    mod = importlib.import_module(
-        f"docs_src.tutorial.connect.select.{module_name}"
-    )
+    mod = importlib.import_module(f"docs_src.tutorial.connect.select.{module_name}")
     mod.sqlite_url = "sqlite://"
     mod.engine = create_engine(mod.sqlite_url)
     return mod
index ecf00c9644542e7f443dc49a62d7bca663670a7e..10b1e864c8c40a68b8d74607d7cb8f713fc6fd5d 100644 (file)
@@ -59,9 +59,7 @@ expected_calls = [
 )
 def get_module(request: pytest.FixtureRequest) -> ModuleType:
     module_name = request.param
-    mod = importlib.import_module(
-        f"docs_src.tutorial.connect.select.{module_name}"
-    )
+    mod = importlib.import_module(f"docs_src.tutorial.connect.select.{module_name}")
     mod.sqlite_url = "sqlite://"
     mod.engine = create_engine(mod.sqlite_url)
     return mod
index 0c64821a93a622b5765705fc42b6e9188ff2198c..fec4122e65923fca7023aa9045857f422fefcf8a 100644 (file)
@@ -61,9 +61,7 @@ expected_calls = [
 )
 def get_module(request: pytest.FixtureRequest) -> ModuleType:
     module_name = request.param
-    mod = importlib.import_module(
-        f"docs_src.tutorial.connect.select.{module_name}"
-    )
+    mod = importlib.import_module(f"docs_src.tutorial.connect.select.{module_name}")
     mod.sqlite_url = "sqlite://"
     mod.engine = create_engine(mod.sqlite_url)
     return mod
index e14e30e945140c8f7ffd77dece499451636fdc17..57032565f5fb9cdb161db86f11412cace04d61fe 100644 (file)
@@ -1,6 +1,6 @@
 import importlib
 from types import ModuleType
-from typing import Any # For clear_sqlmodel type hint
+from typing import Any  # For clear_sqlmodel type hint
 
 import pytest
 from sqlmodel import create_engine
@@ -60,14 +60,14 @@ expected_calls = [
 )
 def get_module(request: pytest.FixtureRequest) -> ModuleType:
     module_name = request.param
-    mod = importlib.import_module(
-        f"docs_src.tutorial.connect.update.{module_name}"
-    )
+    mod = importlib.import_module(f"docs_src.tutorial.connect.update.{module_name}")
     mod.sqlite_url = "sqlite://"
     mod.engine = create_engine(mod.sqlite_url)
     return mod
 
 
-def test_tutorial(clear_sqlmodel: Any, print_mock: PrintMock, module: ModuleType) -> None:
+def test_tutorial(
+    clear_sqlmodel: Any, print_mock: PrintMock, module: ModuleType
+) -> None:
     module.main()
     assert print_mock.calls == expected_calls
index c5e21c252f2dc6ce7b97a78b00dbc5528cc397f8..c3330488c30628ed8005692c0256d29bcd0d051e 100644 (file)
@@ -1,6 +1,6 @@
 import importlib
 from types import ModuleType
-from typing import Any # For clear_sqlmodel type hint
+from typing import Any  # For clear_sqlmodel type hint
 
 import pytest
 from sqlalchemy import inspect
index e67673bd5e046a18bb55b903f209f27ea457f321..5aa3b8ace58d5f257900bea834db8b14f4b60a13 100644 (file)
@@ -1,6 +1,6 @@
 import importlib
 from types import ModuleType
-from typing import Any # For clear_sqlmodel type hint
+from typing import Any  # For clear_sqlmodel type hint
 
 import pytest
 from sqlalchemy import inspect
index 9edb2407089a95ac77c129636ed6f5258cb98470..de555c72c4e702672fe56ee0aadf9ee3e686b877 100644 (file)
@@ -5,11 +5,12 @@ from typing import Any, Generator
 
 import pytest
 from fastapi.testclient import TestClient
-from sqlmodel import Session, SQLModel, create_engine # Keep this for session_fixture
-from sqlmodel.pool import StaticPool # Keep this for session_fixture
+from sqlmodel import Session, SQLModel, create_engine  # Keep this for session_fixture
+from sqlmodel.pool import StaticPool  # Keep this for session_fixture
 
 from ....conftest import needs_py39, needs_py310
 
+
 # This will be our parametrized fixture providing the versioned 'main' module
 @pytest.fixture(
     name="module",
@@ -20,7 +21,9 @@ from ....conftest import needs_py39, needs_py310
         pytest.param("tutorial001_py310", marks=needs_py310),
     ],
 )
-def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any) -> ModuleType: # clear_sqlmodel is autouse
+def get_module(
+    request: pytest.FixtureRequest, clear_sqlmodel: Any
+) -> ModuleType:  # clear_sqlmodel is autouse
     module_name = f"docs_src.tutorial.fastapi.app_testing.{request.param}.main"
 
     # Forcing reload to try to get a fresh state for models
@@ -30,6 +33,7 @@ def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any) -> ModuleTyp
         module = importlib.import_module(module_name)
     return module
 
+
 @pytest.fixture(name="session", scope="function")
 def session_fixture(module: ModuleType) -> Generator[Session, None, None]:
     # Store original engine-related attributes from the module
@@ -39,13 +43,13 @@ def session_fixture(module: ModuleType) -> Generator[Session, None, None]:
 
     # Force module to use a fresh in-memory SQLite DB for this test run
     module.sqlite_url = "sqlite://"
-    module.connect_args = {"check_same_thread": False} # Crucial for FastAPI + SQLite
+    module.connect_args = {"check_same_thread": False}  # Crucial for FastAPI + SQLite
 
     # Re-create the engine in the module to use these new settings
     test_engine = create_engine(
         module.sqlite_url,
         connect_args=module.connect_args,
-        poolclass=StaticPool  # Recommended for tests
+        poolclass=StaticPool,  # Recommended for tests
     )
     module.engine = test_engine
 
@@ -55,7 +59,9 @@ def session_fixture(module: ModuleType) -> Generator[Session, None, None]:
         # Fallback if the function isn't named create_db_and_tables
         SQLModel.metadata.create_all(module.engine)
 
-    with Session(module.engine) as session: # Use the module's (now test-configured) engine
+    with Session(
+        module.engine
+    ) as session:  # Use the module's (now test-configured) engine
         yield session
 
     # Teardown: drop tables from the module's engine
@@ -68,14 +74,16 @@ def session_fixture(module: ModuleType) -> Generator[Session, None, None]:
         module.connect_args = original_connect_args
     if original_engine is not None:
         module.engine = original_engine
-    else: # If engine didn't exist, remove the one we created
+    else:  # If engine didn't exist, remove the one we created
         if hasattr(module, "engine"):
             del module.engine
 
 
 @pytest.fixture(name="client", scope="function")
-def client_fixture(session: Session, module: ModuleType) -> Generator[TestClient, None, None]:
-    def get_session_override() -> Generator[Session, None, None]: # Must be a generator
+def client_fixture(
+    session: Session, module: ModuleType
+) -> Generator[TestClient, None, None]:
+    def get_session_override() -> Generator[Session, None, None]:  # Must be a generator
         yield session
 
     module.app.dependency_overrides[module.get_session] = get_session_override
@@ -140,7 +148,7 @@ def test_read_heroes(session: Session, client: TestClient, module: ModuleType):
 
 
 def test_read_hero(session: Session, client: TestClient, module: ModuleType):
-    hero_1 = module.Hero(name="Deadpond", secret_name="Dive Wilson") # Use module.Hero
+    hero_1 = module.Hero(name="Deadpond", secret_name="Dive Wilson")  # Use module.Hero
     session.add(hero_1)
     session.commit()
 
@@ -155,7 +163,7 @@ def test_read_hero(session: Session, client: TestClient, module: ModuleType):
 
 
 def test_update_hero(session: Session, client: TestClient, module: ModuleType):
-    hero_1 = module.Hero(name="Deadpond", secret_name="Dive Wilson") # Use module.Hero
+    hero_1 = module.Hero(name="Deadpond", secret_name="Dive Wilson")  # Use module.Hero
     session.add(hero_1)
     session.commit()
 
@@ -170,13 +178,13 @@ def test_update_hero(session: Session, client: TestClient, module: ModuleType):
 
 
 def test_delete_hero(session: Session, client: TestClient, module: ModuleType):
-    hero_1 = module.Hero(name="Deadpond", secret_name="Dive Wilson") # Use module.Hero
+    hero_1 = module.Hero(name="Deadpond", secret_name="Dive Wilson")  # Use module.Hero
     session.add(hero_1)
     session.commit()
 
     response = client.delete(f"/heroes/{hero_1.id}")
 
-    hero_in_db = session.get(module.Hero, hero_1.id) # Use module.Hero
+    hero_in_db = session.get(module.Hero, hero_1.id)  # Use module.Hero
 
     assert response.status_code == 200
     assert hero_in_db is None
index 2d37d405c71cb1fcf1644f692dafb32199589879..08016f86f5531a6e11893cf0ef40485d5799ab97 100644 (file)
@@ -1,12 +1,12 @@
 import importlib
 import sys
 from types import ModuleType
-from typing import Any # For clear_sqlmodel type hint
+from typing import Any  # For clear_sqlmodel type hint
 
 import pytest
 from dirty_equals import IsDict
 from fastapi.testclient import TestClient
-from sqlmodel import SQLModel, create_engine # Import SQLModel for metadata operations
+from sqlmodel import SQLModel, create_engine  # Import SQLModel for metadata operations
 from sqlmodel.pool import StaticPool
 
 from ....conftest import needs_py39, needs_py310
@@ -22,7 +22,7 @@ from ....conftest import needs_py39, needs_py310
     ],
 )
 def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any) -> ModuleType:
-    module_name = f"docs_src.tutorial.fastapi.delete.{request.param}" # No .main here
+    module_name = f"docs_src.tutorial.fastapi.delete.{request.param}"  # No .main here
     if module_name in sys.modules:
         module = importlib.reload(sys.modules[module_name])
     else:
@@ -34,19 +34,23 @@ def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any) -> ModuleTyp
     module.sqlite_url = "sqlite://"
     module.engine = create_engine(
         module.sqlite_url,
-        connect_args={"check_same_thread": False}, # connect_args from original main.py
-        poolclass=StaticPool
+        connect_args={"check_same_thread": False},  # connect_args from original main.py
+        poolclass=StaticPool,
     )
     # Assuming the module has a create_db_and_tables or similar, or uses SQLModel.metadata directly
     if hasattr(module, "create_db_and_tables"):
         module.create_db_and_tables()
     else:
-        SQLModel.metadata.create_all(module.engine) # Fallback, ensure tables are created
+        SQLModel.metadata.create_all(
+            module.engine
+        )  # Fallback, ensure tables are created
 
     return module
 
 
-def test_tutorial(clear_sqlmodel: Any, module: ModuleType): # clear_sqlmodel is autouse but explicit for safety
+def test_tutorial(
+    clear_sqlmodel: Any, module: ModuleType
+):  # clear_sqlmodel is autouse but explicit for safety
     # The engine and tables are now set up by the 'module' fixture
     # The app's dependency overrides for get_session will use module.engine
 
@@ -56,7 +60,7 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType): # clear_sqlmodel is
         hero2_data = {
             "name": "Spider-Boy",
             "secret_name": "Pedro Parqueador",
-            "id": 9000, # Note: ID is part of creation data here
+            "id": 9000,  # Note: ID is part of creation data here
         }
         hero3_data = {
             "name": "Rusty-Man",
@@ -65,13 +69,15 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType): # clear_sqlmodel is
         }
         response = client.post("/heroes/", json=hero1_data)
         assert response.status_code == 200, response.text
-        hero1 = response.json() # Get actual ID of hero1
+        hero1 = response.json()  # Get actual ID of hero1
         hero1_id = hero1["id"]
 
         response = client.post("/heroes/", json=hero2_data)
         assert response.status_code == 200, response.text
         hero2 = response.json()
-        hero2_id = hero2["id"] # This will be the ID assigned by DB, not 9000 if 9000 is not allowed on POST
+        hero2_id = hero2[
+            "id"
+        ]  # This will be the ID assigned by DB, not 9000 if 9000 is not allowed on POST
 
         response = client.post("/heroes/", json=hero3_data)
         assert response.status_code == 200, response.text
@@ -86,8 +92,8 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType): # clear_sqlmodel is
         # For robustness, let's check for a non-existent ID based on actual data.
         # If hero2_id is 1, check for 9000. If it's 9000, check for 1 (assuming hero1_id is 1).
         non_existent_id_check = 9000
-        if hero2_id == non_existent_id_check: # if DB somehow used 9000
-            non_existent_id_check = hero1_id + hero2_id + 100 # just some other ID
+        if hero2_id == non_existent_id_check:  # if DB somehow used 9000
+            non_existent_id_check = hero1_id + hero2_id + 100  # just some other ID
 
         response = client.get(f"/heroes/{non_existent_id_check}")
         assert response.status_code == 404, response.text
@@ -102,7 +108,9 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType): # clear_sqlmodel is
         )
         assert response.status_code == 200, response.text
 
-        response = client.patch(f"/heroes/{non_existent_id_check}", json={"name": "Dragon Cube X"})
+        response = client.patch(
+            f"/heroes/{non_existent_id_check}", json={"name": "Dragon Cube X"}
+        )
         assert response.status_code == 404, response.text
 
         response = client.delete(f"/heroes/{hero2_id}")
@@ -111,7 +119,7 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType): # clear_sqlmodel is
         response = client.get("/heroes/")
         assert response.status_code == 200, response.text
         data = response.json()
-        assert len(data) == 2 # After deleting one hero
+        assert len(data) == 2  # After deleting one hero
 
         response = client.delete(f"/heroes/{non_existent_id_check}")
         assert response.status_code == 404, response.text
index 2ce49c1e03621fc27827c20bbf2c2e1ef0578b95..8909e98fffab4e37d57bb593db49faa729014dfc 100644 (file)
@@ -1,12 +1,12 @@
 import importlib
 import sys
 from types import ModuleType
-from typing import Any # For clear_sqlmodel type hint
+from typing import Any  # For clear_sqlmodel type hint
 
 import pytest
 from dirty_equals import IsDict
 from fastapi.testclient import TestClient
-from sqlmodel import SQLModel, create_engine # Import SQLModel for metadata operations
+from sqlmodel import SQLModel, create_engine  # Import SQLModel for metadata operations
 from sqlmodel.pool import StaticPool
 
 from ....conftest import needs_py39, needs_py310
@@ -22,7 +22,9 @@ from ....conftest import needs_py39, needs_py310
     ],
 )
 def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any) -> ModuleType:
-    module_name = f"docs_src.tutorial.fastapi.limit_and_offset.{request.param}" # No .main
+    module_name = (
+        f"docs_src.tutorial.fastapi.limit_and_offset.{request.param}"  # No .main
+    )
     if module_name in sys.modules:
         module = importlib.reload(sys.modules[module_name])
     else:
@@ -31,8 +33,10 @@ def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any) -> ModuleTyp
     module.sqlite_url = "sqlite://"
     module.engine = create_engine(
         module.sqlite_url,
-        connect_args={"check_same_thread": False}, # Assuming connect_args was in original mod or default
-        poolclass=StaticPool
+        connect_args={
+            "check_same_thread": False
+        },  # Assuming connect_args was in original mod or default
+        poolclass=StaticPool,
     )
     if hasattr(module, "create_db_and_tables"):
         module.create_db_and_tables()
@@ -66,7 +70,7 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType):
         response = client.post("/heroes/", json=hero2_data)
         assert response.status_code == 200, response.text
         hero2 = response.json()
-        hero2_id = hero2["id"] # Use the actual ID from response
+        hero2_id = hero2["id"]  # Use the actual ID from response
 
         # Create hero 3
         response = client.post("/heroes/", json=hero3_data)
@@ -92,7 +96,9 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType):
         assert response.status_code == 200, response.text
         data_limit2 = response.json()
         assert len(data_limit2) == 2
-        assert data_limit2[0]["name"] == hero1["name"] # Compare with actual created hero data
+        assert (
+            data_limit2[0]["name"] == hero1["name"]
+        )  # Compare with actual created hero data
         assert data_limit2[1]["name"] == hero2["name"]
 
         response = client.get("/heroes/", params={"offset": 1})
index b0c0c6cec6b077ed23411215a4884320d5868de1..cd36fbe9f3949fabea88b21b2d5e9172942545f4 100644 (file)
@@ -1,14 +1,14 @@
 import importlib
 import sys
 from types import ModuleType
-from typing import Any # For clear_sqlmodel type hint
+from typing import Any  # For clear_sqlmodel type hint
 
 import pytest
 from dirty_equals import IsDict
 from fastapi.testclient import TestClient
 from sqlalchemy import inspect
 from sqlalchemy.engine.reflection import Inspector
-from sqlmodel import SQLModel, create_engine # Import SQLModel
+from sqlmodel import SQLModel, create_engine  # Import SQLModel
 from sqlmodel.pool import StaticPool
 
 from ....conftest import needs_py39, needs_py310
@@ -24,7 +24,9 @@ from ....conftest import needs_py39, needs_py310
     ],
 )
 def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any) -> ModuleType:
-    module_name = f"docs_src.tutorial.fastapi.multiple_models.{request.param}" # No .main
+    module_name = (
+        f"docs_src.tutorial.fastapi.multiple_models.{request.param}"  # No .main
+    )
     if module_name in sys.modules:
         module = importlib.reload(sys.modules[module_name])
     else:
@@ -34,13 +36,11 @@ def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any) -> ModuleTyp
     # Ensure connect_args is available in module, default if not.
     # Some tutorial files might not define it if they don't use on_event("startup") for engine creation.
     connect_args = getattr(module, "connect_args", {"check_same_thread": False})
-    if "check_same_thread" not in connect_args: # Ensure this specific arg for SQLite
+    if "check_same_thread" not in connect_args:  # Ensure this specific arg for SQLite
         connect_args["check_same_thread"] = False
 
     module.engine = create_engine(
-        module.sqlite_url,
-        connect_args=connect_args,
-        poolclass=StaticPool
+        module.sqlite_url, connect_args=connect_args, poolclass=StaticPool
     )
     if hasattr(module, "create_db_and_tables"):
         module.create_db_and_tables()
@@ -66,7 +66,7 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType):
         assert data["secret_name"] == hero1_data["secret_name"]
         assert data["id"] is not None
         assert data["age"] is None
-        hero1_id = data["id"] # Store actual ID
+        hero1_id = data["id"]  # Store actual ID
 
         response = client.post("/heroes/", json=hero2_data)
         data = response.json()
@@ -78,8 +78,7 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType):
         # This is true if ID is auto-generated and not 9000.
         assert data["id"] is not None
         assert data["age"] is None
-        hero2_id = data["id"] # Store actual ID
-
+        hero2_id = data["id"]  # Store actual ID
 
         response = client.get("/heroes/")
         data = response.json()
@@ -95,7 +94,6 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType):
         assert data[1]["name"] == hero2_data["name"]
         assert data[1]["secret_name"] == hero2_data["secret_name"]
 
-
         response = client.get("/openapi.json")
         assert response.status_code == 200, response.text
         # OpenAPI schema check - kept as is from original test
@@ -237,8 +235,8 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType):
         }
 
     # Test inherited indexes
-    insp: Inspector = inspect(module.engine) # Use module.engine
-    indexes = insp.get_indexes(str(module.Hero.__tablename__)) # Use module.Hero
+    insp: Inspector = inspect(module.engine)  # Use module.engine
+    indexes = insp.get_indexes(str(module.Hero.__tablename__))  # Use module.Hero
     expected_indexes = [
         {
             "name": "ix_hero_name",
@@ -255,10 +253,16 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType):
     ]
     # Convert list of dicts to list of tuples of sorted items for order-agnostic comparison
     indexes_for_comparison = [tuple(sorted(d.items())) for d in indexes]
-    expected_indexes_for_comparison = [tuple(sorted(d.items())) for d in expected_indexes]
+    expected_indexes_for_comparison = [
+        tuple(sorted(d.items())) for d in expected_indexes
+    ]
 
     for index_data_tuple in expected_indexes_for_comparison:
-        assert index_data_tuple in indexes_for_comparison, f"Expected index {index_data_tuple} not found in DB indexes {indexes_for_comparison}"
+        assert index_data_tuple in indexes_for_comparison, (
+            f"Expected index {index_data_tuple} not found in DB indexes {indexes_for_comparison}"
+        )
         indexes_for_comparison.remove(index_data_tuple)
 
-    assert len(indexes_for_comparison) == 0, f"Unexpected extra indexes found in DB: {indexes_for_comparison}"
+    assert len(indexes_for_comparison) == 0, (
+        f"Unexpected extra indexes found in DB: {indexes_for_comparison}"
+    )
index bff3992764585de683b0a356862214d59b1f481d..92cf5cbf6dd2c6b372225e31a3fa7801ebb6b4cd 100644 (file)
@@ -1,14 +1,14 @@
 import importlib
 import sys
 from types import ModuleType
-from typing import Any # For clear_sqlmodel type hint
+from typing import Any  # For clear_sqlmodel type hint
 
 import pytest
 from dirty_equals import IsDict
 from fastapi.testclient import TestClient
 from sqlalchemy import inspect
 from sqlalchemy.engine.reflection import Inspector
-from sqlmodel import SQLModel, create_engine # Import SQLModel
+from sqlmodel import SQLModel, create_engine  # Import SQLModel
 from sqlmodel.pool import StaticPool
 
 from ....conftest import needs_py39, needs_py310
@@ -18,9 +18,13 @@ from ....conftest import needs_py39, needs_py310
     name="module",
     scope="function",
     params=[
-        "tutorial002", # Changed to tutorial002
-        pytest.param("tutorial002_py39", marks=needs_py39), # Changed to tutorial002_py39
-        pytest.param("tutorial002_py310", marks=needs_py310), # Changed to tutorial002_py310
+        "tutorial002",  # Changed to tutorial002
+        pytest.param(
+            "tutorial002_py39", marks=needs_py39
+        ),  # Changed to tutorial002_py39
+        pytest.param(
+            "tutorial002_py310", marks=needs_py310
+        ),  # Changed to tutorial002_py310
     ],
 )
 def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any) -> ModuleType:
@@ -36,9 +40,7 @@ def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any) -> ModuleTyp
         connect_args["check_same_thread"] = False
 
     module.engine = create_engine(
-        module.sqlite_url,
-        connect_args=connect_args,
-        poolclass=StaticPool
+        module.sqlite_url, connect_args=connect_args, poolclass=StaticPool
     )
     if hasattr(module, "create_db_and_tables"):
         module.create_db_and_tables()
@@ -75,7 +77,6 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType):
         assert data["age"] is None
         hero2_id = data["id"]
 
-
         response = client.get("/heroes/")
         data = response.json()
 
@@ -88,7 +89,6 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType):
         assert data[1]["name"] == hero2_data["name"]
         assert data[1]["secret_name"] == hero2_data["secret_name"]
 
-
         response = client.get("/openapi.json")
         assert response.status_code == 200, response.text
         assert response.json() == {
@@ -233,7 +233,7 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType):
     indexes = insp.get_indexes(str(module.Hero.__tablename__))
     expected_indexes = [
         {
-            "name": "ix_hero_age", # For tutorial002, order of expected indexes is different
+            "name": "ix_hero_age",  # For tutorial002, order of expected indexes is different
             "dialect_options": {},
             "column_names": ["age"],
             "unique": 0,
@@ -246,10 +246,16 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType):
         },
     ]
     indexes_for_comparison = [tuple(sorted(d.items())) for d in indexes]
-    expected_indexes_for_comparison = [tuple(sorted(d.items())) for d in expected_indexes]
+    expected_indexes_for_comparison = [
+        tuple(sorted(d.items())) for d in expected_indexes
+    ]
 
     for index_data_tuple in expected_indexes_for_comparison:
-        assert index_data_tuple in indexes_for_comparison, f"Expected index {index_data_tuple} not found in DB indexes {indexes_for_comparison}"
+        assert index_data_tuple in indexes_for_comparison, (
+            f"Expected index {index_data_tuple} not found in DB indexes {indexes_for_comparison}"
+        )
         indexes_for_comparison.remove(index_data_tuple)
 
-    assert len(indexes_for_comparison) == 0, f"Unexpected extra indexes found in DB: {indexes_for_comparison}"
+    assert len(indexes_for_comparison) == 0, (
+        f"Unexpected extra indexes found in DB: {indexes_for_comparison}"
+    )
index 0d2b1ec91580cce227ec9941e97c39fc13767543..51fdc80b95f85b81de58958f85f93c6ddc31bfb4 100644 (file)
@@ -22,7 +22,7 @@ from ....conftest import needs_py39, needs_py310
     ],
 )
 def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any) -> ModuleType:
-    module_name = f"docs_src.tutorial.fastapi.read_one.{request.param}" # No .main
+    module_name = f"docs_src.tutorial.fastapi.read_one.{request.param}"  # No .main
     if module_name in sys.modules:
         module = importlib.reload(sys.modules[module_name])
     else:
@@ -34,9 +34,7 @@ def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any) -> ModuleTyp
         connect_args["check_same_thread"] = False
 
     module.engine = create_engine(
-        module.sqlite_url,
-        connect_args=connect_args,
-        poolclass=StaticPool
+        module.sqlite_url, connect_args=connect_args, poolclass=StaticPool
     )
     if hasattr(module, "create_db_and_tables"):
         module.create_db_and_tables()
@@ -56,18 +54,18 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType):
         }
         response = client.post("/heroes/", json=hero1_data)
         assert response.status_code == 200, response.text
-        hero1 = response.json() # Store created hero1 data
+        hero1 = response.json()  # Store created hero1 data
 
         response = client.post("/heroes/", json=hero2_data)
         assert response.status_code == 200, response.text
-        hero2 = response.json() # Store created hero2 data
+        hero2 = response.json()  # Store created hero2 data
 
         response_get_all = client.get("/heroes/")
         assert response_get_all.status_code == 200, response_get_all.text
         data_all = response_get_all.json()
         assert len(data_all) == 2
 
-        hero_id_to_get = hero2["id"] # Use actual ID from created hero2
+        hero_id_to_get = hero2["id"]  # Use actual ID from created hero2
         response_get_one = client.get(f"/heroes/{hero_id_to_get}")
         assert response_get_one.status_code == 200, response_get_one.text
         data_one = response_get_one.json()
@@ -77,9 +75,11 @@ def test_tutorial(clear_sqlmodel: Any, module: ModuleType):
         assert data_one["id"] == hero2["id"]
 
         # Check for a non-existent ID
-        non_existent_id = hero1["id"] + hero2["id"] + 100 # A likely non-existent ID
+        non_existent_id = hero1["id"] + hero2["id"] + 100  # A likely non-existent ID
         response_get_non_existent = client.get(f"/heroes/{non_existent_id}")
-        assert response_get_non_existent.status_code == 404, response_get_non_existent.text
+        assert response_get_non_existent.status_code == 404, (
+            response_get_non_existent.text
+        )
 
         response_openapi = client.get("/openapi.json")
         assert response_openapi.status_code == 200, response_openapi.text
index bcb9cb13dc9a692709bdb1020d1c094b71140c77..bc1379d7110cc1d90a53727d99b798feadd9bc09 100644 (file)
@@ -4,9 +4,8 @@ import types
 from typing import Any
 
 import pytest
-from dirty_equals import IsDict
 from fastapi.testclient import TestClient
-from sqlmodel import create_engine, SQLModel
+from sqlmodel import SQLModel, create_engine
 from sqlmodel.pool import StaticPool
 
 from ....conftest import needs_py39, needs_py310
@@ -89,7 +88,7 @@ def test_tutorial(module: types.ModuleType):
         hero2_data = {
             "name": "Spider-Boy",
             "secret_name": "Pedro Parqueador",
-            "id": 9000, # This ID might be problematic if the DB auto-increments differently or if this ID is expected to be user-settable and unique
+            "id": 9000,  # This ID might be problematic if the DB auto-increments differently or if this ID is expected to be user-settable and unique
         }
         hero3_data = {
             "name": "Rusty-Man",
@@ -107,8 +106,10 @@ def test_tutorial(module: types.ModuleType):
         hero2_id = hero2["id"]
         response = client.post("/heroes/", json=hero3_data)
         assert response.status_code == 200, response.text
-        response = client.get("/heroes/9000") # This might fail if hero2_id is not 9000
-        assert response.status_code == 404, response.text # Original test expects 404, this implies ID 9000 is not found after creation. This needs to align with how IDs are handled.
+        response = client.get("/heroes/9000")  # This might fail if hero2_id is not 9000
+        assert response.status_code == 404, (
+            response.text
+        )  # Original test expects 404, this implies ID 9000 is not found after creation. This needs to align with how IDs are handled.
 
         response = client.get("/heroes/")
         assert response.status_code == 200, response.text
@@ -120,18 +121,25 @@ def test_tutorial(module: types.ModuleType):
         data = response.json()
         assert data["name"] == hero1_data["name"]
         # Ensure team is loaded and correct
-        if "team" in data and data["team"] is not None: # Team might not be present if not correctly loaded by the endpoint
+        if (
+            "team" in data and data["team"] is not None
+        ):  # Team might not be present if not correctly loaded by the endpoint
             assert data["team"]["name"] == team_z_force["name"]
-        elif short_module_name != "tutorial001_py310": # tutorial001_py310.py doesn't include team in HeroPublic
-             # If team is expected, this is a failure. For tutorial001 and tutorial001_py39, team should be present.
-            assert "team" in data and data["team"] is not None, "Team data missing in hero response"
-
+        elif (
+            short_module_name != "tutorial001_py310"
+        ):  # tutorial001_py310.py doesn't include team in HeroPublic
+            # If team is expected, this is a failure. For tutorial001 and tutorial001_py39, team should be present.
+            assert "team" in data and data["team"] is not None, (
+                "Team data missing in hero response"
+            )
 
         response = client.patch(
             f"/heroes/{hero2_id}", json={"secret_name": "Spider-Youngster"}
         )
         assert response.status_code == 200, response.text
-        response = client.patch("/heroes/9001", json={"name": "Dragon Cube X"}) # Test patching non-existent hero
+        response = client.patch(
+            "/heroes/9001", json={"name": "Dragon Cube X"}
+        )  # Test patching non-existent hero
         assert response.status_code == 404, response.text
 
         response = client.delete(f"/heroes/{hero2_id}")
@@ -140,24 +148,24 @@ def test_tutorial(module: types.ModuleType):
         assert response.status_code == 200, response.text
         data = response.json()
         assert len(data) == 2
-        response = client.delete("/heroes/9000") # Test deleting non-existent hero
+        response = client.delete("/heroes/9000")  # Test deleting non-existent hero
         assert response.status_code == 404, response.text
 
         response = client.get(f"/teams/{team_preventers_id}")
         data = response.json()
         assert response.status_code == 200, response.text
         assert data["name"] == team_preventers_data["name"]
-        assert len(data["heroes"]) > 0 # Ensure heroes are loaded
+        assert len(data["heroes"]) > 0  # Ensure heroes are loaded
         assert data["heroes"][0]["name"] == hero3_data["name"]
 
         response = client.delete(f"/teams/{team_preventers_id}")
         assert response.status_code == 200, response.text
-        response = client.delete("/teams/9000") # Test deleting non-existent team
+        response = client.delete("/teams/9000")  # Test deleting non-existent team
         assert response.status_code == 404, response.text
         response = client.get("/teams/")
         assert response.status_code == 200, response.text
         data = response.json()
-        assert len(data) == 1 # Only Z-Force should remain
+        assert len(data) == 1  # Only Z-Force should remain
 
         # OpenAPI schema check - this is a long part, keeping it as is from the original.
         # Small modification to handle potential differences in Pydantic v1 vs v2 for optional fields in schema
@@ -177,10 +185,17 @@ def test_tutorial(module: types.ModuleType):
 
         # short_module_name is already defined at the start of the 'with TestClient' block
         # All versions (base, py39, py310) use HeroPublicWithTeam for this endpoint based on previous test run.
-        assert get_hero_path["responses"]["200"]["content"]["application/json"]["schema"]["$ref"] == "#/components/schemas/HeroPublicWithTeam"
+        assert (
+            get_hero_path["responses"]["200"]["content"]["application/json"]["schema"][
+                "$ref"
+            ]
+            == "#/components/schemas/HeroPublicWithTeam"
+        )
 
         # Check HeroCreate schema for age and team_id nullability based on IsDict usage in original
-        hero_create_props = openapi_schema["components"]["schemas"]["HeroCreate"]["properties"]
+        hero_create_props = openapi_schema["components"]["schemas"]["HeroCreate"][
+            "properties"
+        ]
         # For Pydantic v2 style (anyOf with type and null) vs Pydantic v1 (just type, optionality by not being in required)
         # This test was written with IsDict which complicates exact schema matching without knowing SQLModel version's Pydantic interaction
         # For simplicity, we check if 'age' and 'team_id' are present. Detailed check would need to adapt to SQLModel's Pydantic version.
@@ -203,11 +218,19 @@ def test_tutorial(module: types.ModuleType):
         # It's better to check for key components and structures.
 
         # Check if TeamPublicWithHeroes has heroes list
-        team_public_with_heroes_props = openapi_schema["components"]["schemas"]["TeamPublicWithHeroes"]["properties"]
+        team_public_with_heroes_props = openapi_schema["components"]["schemas"][
+            "TeamPublicWithHeroes"
+        ]["properties"]
         assert "heroes" in team_public_with_heroes_props
         assert team_public_with_heroes_props["heroes"]["type"] == "array"
         # short_module_name is already defined
         if short_module_name == "tutorial001_py310":
-            assert team_public_with_heroes_props["heroes"]["items"]["$ref"] == "#/components/schemas/HeroPublic" # tutorial001_py310 uses HeroPublic for heroes list
+            assert (
+                team_public_with_heroes_props["heroes"]["items"]["$ref"]
+                == "#/components/schemas/HeroPublic"
+            )  # tutorial001_py310 uses HeroPublic for heroes list
         else:
-            assert team_public_with_heroes_props["heroes"]["items"]["$ref"] == "#/components/schemas/HeroPublic" # Original tutorial001.py seems to imply HeroPublic as well.
+            assert (
+                team_public_with_heroes_props["heroes"]["items"]["$ref"]
+                == "#/components/schemas/HeroPublic"
+            )  # Original tutorial001.py seems to imply HeroPublic as well.
index 2b935b239836561138777e0f9376ed4647ba084a..b0dd9e9496dfe9c63b1b8a36f0fb02eba848ee48 100644 (file)
@@ -6,7 +6,7 @@ from typing import Any
 import pytest
 from dirty_equals import IsDict
 from fastapi.testclient import TestClient
-from sqlmodel import create_engine, SQLModel
+from sqlmodel import SQLModel, create_engine
 from sqlmodel.pool import StaticPool
 
 from ....conftest import needs_py39, needs_py310
@@ -67,7 +67,7 @@ def test_tutorial(module: types.ModuleType):
         assert data[0]["secret_name"] == hero_data["secret_name"]
         # Ensure other fields are present as per the model Hero (which is used as response_model)
         assert "id" in data[0]
-        assert "age" in data[0] # Even if None, it should be in the response
+        assert "age" in data[0]  # Even if None, it should be in the response
 
         response = client.get("/openapi.json")
         assert response.status_code == 200, response.text
index 388a2fba52ac0b8b9b2e9e4c52d316e30140bd7d..0ee7bb484f5f572fdb4fb6f82fc16ec9ef8ee86a 100644 (file)
@@ -6,7 +6,7 @@ from typing import Any
 import pytest
 from dirty_equals import IsDict
 from fastapi.testclient import TestClient
-from sqlmodel import create_engine, SQLModel
+from sqlmodel import create_engine
 from sqlmodel.pool import StaticPool
 
 from ....conftest import needs_py39, needs_py310
@@ -52,10 +52,10 @@ def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     # Let's rely on the app's startup event as per the tutorial's design.
     # If `create_db_and_tables` exists as a global function in the module (outside app event), then call it.
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
-         # Check if it's the function that FastAPI would call, or a standalone one.
-         # This tutorial series usually has `create_db_and_tables` called by `app.on_event("startup")`.
-         # If the tests run TestClient(mod.app), startup events will run.
-         pass # Assuming startup event handles it.
+        # Check if it's the function that FastAPI would call, or a standalone one.
+        # This tutorial series usually has `create_db_and_tables` called by `app.on_event("startup")`.
+        # If the tests run TestClient(mod.app), startup events will run.
+        pass  # Assuming startup event handles it.
 
     return mod
 
@@ -67,7 +67,7 @@ def test_tutorial(module: types.ModuleType):
         hero2_data = {
             "name": "Spider-Boy",
             "secret_name": "Pedro Parqueador",
-            "id": 9000, # This ID might be ignored by DB if it's auto-incrementing primary key
+            "id": 9000,  # This ID might be ignored by DB if it's auto-incrementing primary key
         }
         hero3_data = {
             "name": "Rusty-Man",
@@ -79,13 +79,13 @@ def test_tutorial(module: types.ModuleType):
 
         response = client.post("/heroes/", json=hero2_data)
         assert response.status_code == 200, response.text
-        hero2_created = response.json() # Use the ID from the created hero
+        hero2_created = response.json()  # Use the ID from the created hero
         hero2_id = hero2_created["id"]
 
         response = client.post("/heroes/", json=hero3_data)
         assert response.status_code == 200, response.text
 
-        response = client.get(f"/heroes/{hero2_id}") # Use the actual ID from DB
+        response = client.get(f"/heroes/{hero2_id}")  # Use the actual ID from DB
         assert response.status_code == 200, response.text
 
         # If hero ID 9000 was intended to be a specific test case for a non-existent ID
@@ -93,8 +93,10 @@ def test_tutorial(module: types.ModuleType):
         # Otherwise, if hero2 was expected to have ID 9000, this needs adjustment.
         # Given typical auto-increment, ID 9000 for hero2 is unlikely unless DB is reset and hero2 is first entry.
         # The original test implies hero2_data's ID is not necessarily the created ID.
-        response = client.get("/heroes/9000") # Check for a potentially non-existent ID
-        assert response.status_code == 404, response.text # Expect 404 if 9000 is not hero2_id and not another hero's ID
+        response = client.get("/heroes/9000")  # Check for a potentially non-existent ID
+        assert response.status_code == 404, (
+            response.text
+        )  # Expect 404 if 9000 is not hero2_id and not another hero's ID
 
         response = client.get("/heroes/")
         assert response.status_code == 200, response.text
@@ -106,7 +108,9 @@ def test_tutorial(module: types.ModuleType):
         )
         assert response.status_code == 200, response.text
 
-        response = client.patch("/heroes/9001", json={"name": "Dragon Cube X"}) # Non-existent ID
+        response = client.patch(
+            "/heroes/9001", json={"name": "Dragon Cube X"}
+        )  # Non-existent ID
         assert response.status_code == 404, response.text
 
         response = client.delete(f"/heroes/{hero2_id}")
@@ -117,7 +121,9 @@ def test_tutorial(module: types.ModuleType):
         data = response.json()
         assert len(data) == 2
 
-        response = client.delete("/heroes/9000") # Non-existent ID (same as the GET check)
+        response = client.delete(
+            "/heroes/9000"
+        )  # Non-existent ID (same as the GET check)
         assert response.status_code == 404, response.text
 
         response = client.get("/openapi.json")
index 0a5af9ab96b624e320dfb5fdc0c5cbbb53eff6e3..784b2b05d0d7df43514595773e08118280705dee 100644 (file)
@@ -6,10 +6,12 @@ from typing import Any
 import pytest
 from dirty_equals import IsDict
 from fastapi.testclient import TestClient
-from sqlmodel import create_engine, SQLModel
+from sqlmodel import create_engine
 from sqlmodel.pool import StaticPool
 
-from ....conftest import needs_py310 # This needs to be relative to this file's location
+from ....conftest import (
+    needs_py310,  # This needs to be relative to this file's location
+)
 
 
 @pytest.fixture(
@@ -21,9 +23,7 @@ from ....conftest import needs_py310 # This needs to be relative to this file's
 )
 def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     module_name = request.param
-    full_module_name = (
-        f"docs_src.tutorial.fastapi.simple_hero_api.{module_name}"
-    )
+    full_module_name = f"docs_src.tutorial.fastapi.simple_hero_api.{module_name}"
 
     if full_module_name in sys.modules:
         mod = importlib.reload(sys.modules[full_module_name])
@@ -46,13 +46,15 @@ def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     return mod
 
 
-def test_tutorial(module: types.ModuleType): # clear_sqlmodel is implicitly used by get_module
+def test_tutorial(
+    module: types.ModuleType,
+):  # clear_sqlmodel is implicitly used by get_module
     with TestClient(module.app) as client:
         hero1_data = {"name": "Deadpond", "secret_name": "Dive Wilson"}
         hero2_data = {
             "name": "Spider-Boy",
             "secret_name": "Pedro Parqueador",
-            "id": 9000, # This ID is part of the test logic for this tutorial specifically
+            "id": 9000,  # This ID is part of the test logic for this tutorial specifically
         }
         response = client.post("/heroes/", json=hero1_data)
         data = response.json()
index 5b97c7c1279eab229e81a046b2ebe1383d179159..933742be0b2787bfcb296fd25271758f384abfe6 100644 (file)
@@ -6,7 +6,7 @@ from typing import Any
 import pytest
 from dirty_equals import IsDict
 from fastapi.testclient import TestClient
-from sqlmodel import create_engine, SQLModel
+from sqlmodel import create_engine
 from sqlmodel.pool import StaticPool
 
 from ....conftest import needs_py39, needs_py310
@@ -44,11 +44,13 @@ def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     return mod
 
 
-def test_tutorial(module: types.ModuleType): # clear_sqlmodel is implicitly used by get_module
+def test_tutorial(
+    module: types.ModuleType,
+):  # clear_sqlmodel is implicitly used by get_module
     with TestClient(module.app) as client:
         # Hero Operations
         hero1_data = {"name": "Deadpond", "secret_name": "Dive Wilson"}
-        hero2_data = { # This hero's ID might be overridden by DB if not specified or if ID is auto-incrementing
+        hero2_data = {  # This hero's ID might be overridden by DB if not specified or if ID is auto-incrementing
             "name": "Spider-Boy",
             "secret_name": "Pedro Parqueador",
             "id": 9000,
@@ -61,29 +63,35 @@ def test_tutorial(module: types.ModuleType): # clear_sqlmodel is implicitly used
         response = client.post("/heroes/", json=hero2_data)
         assert response.status_code == 200, response.text
         hero2_created = response.json()
-        hero2_id = hero2_created["id"] # Use the actual ID returned by the DB
+        hero2_id = hero2_created["id"]  # Use the actual ID returned by the DB
 
         response = client.post("/heroes/", json=hero3_data)
         assert response.status_code == 200, response.text
 
-        response = client.get(f"/heroes/{hero2_id}") # Use DB generated ID
+        response = client.get(f"/heroes/{hero2_id}")  # Use DB generated ID
         assert response.status_code == 200, response.text
 
-        response = client.get("/heroes/9000") # Check for ID 9000 specifically (could be hero2_id or not)
-        if hero2_id == 9000 : # If hero2 got ID 9000
-             assert response.status_code == 200, response.text
-        else: # If hero2 got a different ID, then 9000 should not exist
-             assert response.status_code == 404, response.text
+        response = client.get(
+            "/heroes/9000"
+        )  # Check for ID 9000 specifically (could be hero2_id or not)
+        if hero2_id == 9000:  # If hero2 got ID 9000
+            assert response.status_code == 200, response.text
+        else:  # If hero2 got a different ID, then 9000 should not exist
+            assert response.status_code == 404, response.text
 
         response = client.get("/heroes/")
         assert response.status_code == 200, response.text
         data = response.json()
         assert len(data) == 3
 
-        response = client.patch(f"/heroes/{hero2_id}", json={"secret_name": "Spider-Youngster"})
+        response = client.patch(
+            f"/heroes/{hero2_id}", json={"secret_name": "Spider-Youngster"}
+        )
         assert response.status_code == 200, response.text
 
-        response = client.patch("/heroes/9001", json={"name": "Dragon Cube X"}) # Non-existent ID
+        response = client.patch(
+            "/heroes/9001", json={"name": "Dragon Cube X"}
+        )  # Non-existent ID
         assert response.status_code == 404, response.text
 
         response = client.delete(f"/heroes/{hero2_id}")
@@ -94,13 +102,19 @@ def test_tutorial(module: types.ModuleType): # clear_sqlmodel is implicitly used
         data = response.json()
         assert len(data) == 2
 
-        response = client.delete("/heroes/9000") # Try deleting ID 9000
-        if hero2_id == 9000 and hero2_id not in [h["id"] for h in data]: # If it was hero2's ID and hero2 was deleted
-            assert response.status_code == 404 # Already deleted
-        elif hero2_id != 9000 and 9000 not in [h["id"] for h in data]: # If 9000 was never a valid ID among current heroes
+        response = client.delete("/heroes/9000")  # Try deleting ID 9000
+        if hero2_id == 9000 and hero2_id not in [
+            h["id"] for h in data
+        ]:  # If it was hero2's ID and hero2 was deleted
+            assert response.status_code == 404  # Already deleted
+        elif hero2_id != 9000 and 9000 not in [
+            h["id"] for h in data
+        ]:  # If 9000 was never a valid ID among current heroes
             assert response.status_code == 404
-        else: # If 9000 was a valid ID of another hero still present (should not happen with current data)
-            assert response.status_code == 200 # This case is unlikely with current test data
+        else:  # If 9000 was a valid ID of another hero still present (should not happen with current data)
+            assert (
+                response.status_code == 200
+            )  # This case is unlikely with current test data
 
         # Team Operations
         team_preventers_data = {"name": "Preventers", "headquarters": "Sharp Tower"}
@@ -127,7 +141,7 @@ def test_tutorial(module: types.ModuleType): # clear_sqlmodel is implicitly used
         assert data["headquarters"] == team_preventers_created["headquarters"]
         assert data["id"] == team_preventers_created["id"]
 
-        response = client.get("/teams/9000") # Non-existent team ID
+        response = client.get("/teams/9000")  # Non-existent team ID
         assert response.status_code == 404, response.text
 
         response = client.patch(
@@ -135,16 +149,18 @@ def test_tutorial(module: types.ModuleType): # clear_sqlmodel is implicitly used
         )
         data = response.json()
         assert response.status_code == 200, response.text
-        assert data["name"] == team_preventers_data["name"] # Name should be unchanged
+        assert data["name"] == team_preventers_data["name"]  # Name should be unchanged
         assert data["headquarters"] == "Preventers Tower"
 
-        response = client.patch("/teams/9000", json={"name": "Freedom League"}) # Non-existent
+        response = client.patch(
+            "/teams/9000", json={"name": "Freedom League"}
+        )  # Non-existent
         assert response.status_code == 404, response.text
 
         response = client.delete(f"/teams/{team_preventers_id}")
         assert response.status_code == 200, response.text
 
-        response = client.delete("/teams/9000") # Non-existent
+        response = client.delete("/teams/9000")  # Non-existent
         assert response.status_code == 404, response.text
 
         response = client.get("/teams/")
index 2a57f4177324434ee690dc6d02bf7817de35b00d..50841bdd664f41473847a703c371be1f78e83659 100644 (file)
@@ -6,7 +6,7 @@ from typing import Any
 import pytest
 from dirty_equals import IsDict
 from fastapi.testclient import TestClient
-from sqlmodel import create_engine, SQLModel
+from sqlmodel import create_engine
 from sqlmodel.pool import StaticPool
 
 from ....conftest import needs_py39, needs_py310
@@ -65,7 +65,7 @@ def test_tutorial(module: types.ModuleType):
         response = client.post("/heroes/", json=hero2_input_data)
         assert response.status_code == 200, response.text
         hero2_created = response.json()
-        hero2_id = hero2_created["id"] # This is the ID to use for hero2
+        hero2_id = hero2_created["id"]  # This is the ID to use for hero2
 
         response = client.post("/heroes/", json=hero3_data)
         assert response.status_code == 200, response.text
@@ -93,7 +93,9 @@ def test_tutorial(module: types.ModuleType):
         )
         data = response.json()
         assert response.status_code == 200, response.text
-        assert data["name"] == hero2_created["name"] # Name should not change from created state
+        assert (
+            data["name"] == hero2_created["name"]
+        )  # Name should not change from created state
         assert data["secret_name"] == "Spider-Youngster"
 
         response = client.patch(f"/heroes/{hero3_id}", json={"age": None})
@@ -102,7 +104,9 @@ def test_tutorial(module: types.ModuleType):
         assert data["name"] == hero3_created["name"]
         assert data["age"] is None
 
-        response = client.patch("/heroes/9001", json={"name": "Dragon Cube X"}) # Non-existent ID
+        response = client.patch(
+            "/heroes/9001", json={"name": "Dragon Cube X"}
+        )  # Non-existent ID
         assert response.status_code == 404, response.text
 
         response = client.get("/openapi.json")
@@ -313,7 +317,7 @@ def test_tutorial(module: types.ModuleType):
                                 }
                             )
                             | IsDict(
-                                {"title": "Age", "type": "integer"} # Pydantic v1
+                                {"title": "Age", "type": "integer"}  # Pydantic v1
                             ),
                         },
                     },
@@ -331,7 +335,7 @@ def test_tutorial(module: types.ModuleType):
                                 }
                             )
                             | IsDict(
-                                {"title": "Age", "type": "integer"} # Pydantic v1
+                                {"title": "Age", "type": "integer"}  # Pydantic v1
                             ),
                             "id": {"title": "Id", "type": "integer"},
                         },
@@ -347,7 +351,7 @@ def test_tutorial(module: types.ModuleType):
                                 }
                             )
                             | IsDict(
-                                {"title": "Name", "type": "string"} # Pydantic v1
+                                {"title": "Name", "type": "string"}  # Pydantic v1
                             ),
                             "secret_name": IsDict(
                                 {
@@ -356,7 +360,10 @@ def test_tutorial(module: types.ModuleType):
                                 }
                             )
                             | IsDict(
-                                {"title": "Secret Name", "type": "string"} # Pydantic v1
+                                {
+                                    "title": "Secret Name",
+                                    "type": "string",
+                                }  # Pydantic v1
                             ),
                             "age": IsDict(
                                 {
@@ -365,7 +372,7 @@ def test_tutorial(module: types.ModuleType):
                                 }
                             )
                             | IsDict(
-                                {"title": "Age", "type": "integer"} # Pydantic v1
+                                {"title": "Age", "type": "integer"}  # Pydantic v1
                             ),
                         },
                     },
index c82c8b88fbc604723a5bfa33258a9fc2d7398693..05c43bc629b00ab72313d3506220fff0c2b0686c 100644 (file)
@@ -6,7 +6,7 @@ from typing import Any
 import pytest
 from dirty_equals import IsDict
 from fastapi.testclient import TestClient
-from sqlmodel import create_engine, SQLModel, Session
+from sqlmodel import Session, create_engine
 from sqlmodel.pool import StaticPool
 
 from ....conftest import needs_py39, needs_py310
@@ -48,10 +48,10 @@ def test_tutorial(module: types.ModuleType):
             "secret_name": "Dive Wilson",
             "password": "chimichanga",
         }
-        hero2_input_data = { # Renamed to avoid confusion with returned hero2
+        hero2_input_data = {  # Renamed to avoid confusion with returned hero2
             "name": "Spider-Boy",
             "secret_name": "Pedro Parqueador",
-            "id": 9000, # ID might be ignored by DB
+            "id": 9000,  # ID might be ignored by DB
             "password": "auntmay",
         }
         hero3_data = {
@@ -63,7 +63,7 @@ def test_tutorial(module: types.ModuleType):
 
         response = client.post("/heroes/", json=hero1_data)
         assert response.status_code == 200, response.text
-        hero1_created = response.json() # Use created hero data
+        hero1_created = response.json()  # Use created hero data
         assert "password" not in hero1_created
         assert "hashed_password" not in hero1_created
         hero1_id = hero1_created["id"]
@@ -71,7 +71,7 @@ def test_tutorial(module: types.ModuleType):
         response = client.post("/heroes/", json=hero2_input_data)
         assert response.status_code == 200, response.text
         hero2_created = response.json()
-        hero2_id = hero2_created["id"] # Use DB assigned ID
+        hero2_id = hero2_created["id"]  # Use DB assigned ID
 
         response = client.post("/heroes/", json=hero3_data)
         assert response.status_code == 200, response.text
@@ -85,9 +85,9 @@ def test_tutorial(module: types.ModuleType):
         assert "hashed_password" not in fetched_hero2
 
         response_get_9000 = client.get("/heroes/9000")
-        if hero2_id == 9000: # If hero2 happened to get ID 9000
+        if hero2_id == 9000:  # If hero2 happened to get ID 9000
             assert response_get_9000.status_code == 200
-        else: # Otherwise, 9000 should not exist
+        else:  # Otherwise, 9000 should not exist
             assert response_get_9000.status_code == 404
 
         response = client.get("/heroes/")
@@ -102,7 +102,9 @@ def test_tutorial(module: types.ModuleType):
         with Session(module.engine) as session:
             hero1_db = session.get(module.Hero, hero1_id)
             assert hero1_db
-            assert not hasattr(hero1_db, "password") # Model should not have 'password' field after read from DB
+            assert not hasattr(
+                hero1_db, "password"
+            )  # Model should not have 'password' field after read from DB
             assert hero1_db.hashed_password == "not really hashed chimichanga hehehe"
 
             hero2_db = session.get(module.Hero, hero2_id)
@@ -120,7 +122,7 @@ def test_tutorial(module: types.ModuleType):
         )
         data = response.json()
         assert response.status_code == 200, response.text
-        assert data["name"] == hero2_created["name"] # Use created name for comparison
+        assert data["name"] == hero2_created["name"]  # Use created name for comparison
         assert data["secret_name"] == "Spider-Youngster"
         assert "password" not in data
         assert "hashed_password" not in data
@@ -128,7 +130,9 @@ def test_tutorial(module: types.ModuleType):
             hero2b_db = session.get(module.Hero, hero2_id)
             assert hero2b_db
             assert not hasattr(hero2b_db, "password")
-            assert hero2b_db.hashed_password == "not really hashed auntmay hehehe" # Password shouldn't change on this patch
+            assert (
+                hero2b_db.hashed_password == "not really hashed auntmay hehehe"
+            )  # Password shouldn't change on this patch
 
         response = client.patch(f"/heroes/{hero3_id}", json={"age": None})
         data = response.json()
@@ -149,308 +153,339 @@ def test_tutorial(module: types.ModuleType):
         data = response.json()
         assert response.status_code == 200, response.text
         assert data["name"] == hero3_created["name"]
-        assert data["age"] is None # Age should persist as None from previous patch
+        assert data["age"] is None  # Age should persist as None from previous patch
         assert "password" not in data
         assert "hashed_password" not in data
         with Session(module.engine) as session:
-            hero3c_db = session.get(module.Hero, hero3_id) # Renamed to avoid confusion
+            hero3c_db = session.get(module.Hero, hero3_id)  # Renamed to avoid confusion
             assert hero3c_db
             assert not hasattr(hero3c_db, "password")
-            assert hero3c_db.hashed_password == "not really hashed philantroplayboy hehehe"
+            assert (
+                hero3c_db.hashed_password == "not really hashed philantroplayboy hehehe"
+            )
 
-        response = client.patch("/heroes/9001", json={"name": "Dragon Cube X"}) # Non-existent
+        response = client.patch(
+            "/heroes/9001", json={"name": "Dragon Cube X"}
+        )  # Non-existent
         assert response.status_code == 404, response.text
 
         response = client.get("/openapi.json")
         assert response.status_code == 200, response.text
         # OpenAPI schema is consistent
-        assert response.json() == {
-            "openapi": "3.1.0",
-            "info": {"title": "FastAPI", "version": "0.1.0"},
-            "paths": {
-                "/heroes/": {
-                    "get": {
-                        "summary": "Read Heroes",
-                        "operationId": "read_heroes_heroes__get",
-                        "parameters": [
-                            {
-                                "required": False,
-                                "schema": {
-                                    "title": "Offset",
-                                    "type": "integer",
-                                    "default": 0,
+        assert (
+            response.json()
+            == {
+                "openapi": "3.1.0",
+                "info": {"title": "FastAPI", "version": "0.1.0"},
+                "paths": {
+                    "/heroes/": {
+                        "get": {
+                            "summary": "Read Heroes",
+                            "operationId": "read_heroes_heroes__get",
+                            "parameters": [
+                                {
+                                    "required": False,
+                                    "schema": {
+                                        "title": "Offset",
+                                        "type": "integer",
+                                        "default": 0,
+                                    },
+                                    "name": "offset",
+                                    "in": "query",
                                 },
-                                "name": "offset",
-                                "in": "query",
-                            },
-                            {
-                                "required": False,
-                                "schema": {
-                                    "title": "Limit",
-                                    "maximum": 100, # Corrected based on original test data
-                                    "type": "integer",
-                                    "default": 100,
+                                {
+                                    "required": False,
+                                    "schema": {
+                                        "title": "Limit",
+                                        "maximum": 100,  # Corrected based on original test data
+                                        "type": "integer",
+                                        "default": 100,
+                                    },
+                                    "name": "limit",
+                                    "in": "query",
                                 },
-                                "name": "limit",
-                                "in": "query",
-                            },
-                        ],
-                        "responses": {
-                            "200": {
-                                "description": "Successful Response",
-                                "content": {
-                                    "application/json": {
-                                        "schema": {
-                                            "title": "Response Read Heroes Heroes  Get",
-                                            "type": "array",
-                                            "items": {
-                                                "$ref": "#/components/schemas/HeroPublic"
-                                            },
+                            ],
+                            "responses": {
+                                "200": {
+                                    "description": "Successful Response",
+                                    "content": {
+                                        "application/json": {
+                                            "schema": {
+                                                "title": "Response Read Heroes Heroes  Get",
+                                                "type": "array",
+                                                "items": {
+                                                    "$ref": "#/components/schemas/HeroPublic"
+                                                },
+                                            }
                                         }
-                                    }
+                                    },
                                 },
-                            },
-                            "422": {
-                                "description": "Validation Error",
-                                "content": {
-                                    "application/json": {
-                                        "schema": {
-                                            "$ref": "#/components/schemas/HTTPValidationError"
+                                "422": {
+                                    "description": "Validation Error",
+                                    "content": {
+                                        "application/json": {
+                                            "schema": {
+                                                "$ref": "#/components/schemas/HTTPValidationError"
+                                            }
                                         }
-                                    }
+                                    },
                                 },
                             },
                         },
-                    },
-                    "post": {
-                        "summary": "Create Hero",
-                        "operationId": "create_hero_heroes__post",
-                        "requestBody": {
-                            "content": {
-                                "application/json": {
-                                    "schema": {
-                                        "$ref": "#/components/schemas/HeroCreate"
-                                    }
-                                }
-                            },
-                            "required": True,
-                        },
-                        "responses": {
-                            "200": {
-                                "description": "Successful Response",
+                        "post": {
+                            "summary": "Create Hero",
+                            "operationId": "create_hero_heroes__post",
+                            "requestBody": {
                                 "content": {
                                     "application/json": {
                                         "schema": {
-                                            "$ref": "#/components/schemas/HeroPublic"
+                                            "$ref": "#/components/schemas/HeroCreate"
                                         }
                                     }
                                 },
+                                "required": True,
                             },
-                            "422": {
-                                "description": "Validation Error",
-                                "content": {
-                                    "application/json": {
-                                        "schema": {
-                                            "$ref": "#/components/schemas/HTTPValidationError"
+                            "responses": {
+                                "200": {
+                                    "description": "Successful Response",
+                                    "content": {
+                                        "application/json": {
+                                            "schema": {
+                                                "$ref": "#/components/schemas/HeroPublic"
+                                            }
                                         }
-                                    }
+                                    },
+                                },
+                                "422": {
+                                    "description": "Validation Error",
+                                    "content": {
+                                        "application/json": {
+                                            "schema": {
+                                                "$ref": "#/components/schemas/HTTPValidationError"
+                                            }
+                                        }
+                                    },
                                 },
                             },
                         },
                     },
-                },
-                "/heroes/{hero_id}": {
-                    "get": {
-                        "summary": "Read Hero",
-                        "operationId": "read_hero_heroes__hero_id__get",
-                        "parameters": [
-                            {
-                                "required": True,
-                                "schema": {"title": "Hero Id", "type": "integer"},
-                                "name": "hero_id",
-                                "in": "path",
-                            }
-                        ],
-                        "responses": {
-                            "200": {
-                                "description": "Successful Response",
-                                "content": {
-                                    "application/json": {
-                                        "schema": {
-                                            "$ref": "#/components/schemas/HeroPublic"
+                    "/heroes/{hero_id}": {
+                        "get": {
+                            "summary": "Read Hero",
+                            "operationId": "read_hero_heroes__hero_id__get",
+                            "parameters": [
+                                {
+                                    "required": True,
+                                    "schema": {"title": "Hero Id", "type": "integer"},
+                                    "name": "hero_id",
+                                    "in": "path",
+                                }
+                            ],
+                            "responses": {
+                                "200": {
+                                    "description": "Successful Response",
+                                    "content": {
+                                        "application/json": {
+                                            "schema": {
+                                                "$ref": "#/components/schemas/HeroPublic"
+                                            }
                                         }
-                                    }
+                                    },
                                 },
-                            },
-                            "422": {
-                                "description": "Validation Error",
-                                "content": {
-                                    "application/json": {
-                                        "schema": {
-                                            "$ref": "#/components/schemas/HTTPValidationError"
+                                "422": {
+                                    "description": "Validation Error",
+                                    "content": {
+                                        "application/json": {
+                                            "schema": {
+                                                "$ref": "#/components/schemas/HTTPValidationError"
+                                            }
                                         }
-                                    }
+                                    },
                                 },
                             },
                         },
-                    },
-                    "patch": {
-                        "summary": "Update Hero",
-                        "operationId": "update_hero_heroes__hero_id__patch",
-                        "parameters": [
-                            {
-                                "required": True,
-                                "schema": {"title": "Hero Id", "type": "integer"},
-                                "name": "hero_id",
-                                "in": "path",
-                            }
-                        ],
-                        "requestBody": {
-                            "content": {
-                                "application/json": {
-                                    "schema": {
-                                        "$ref": "#/components/schemas/HeroUpdate"
-                                    }
+                        "patch": {
+                            "summary": "Update Hero",
+                            "operationId": "update_hero_heroes__hero_id__patch",
+                            "parameters": [
+                                {
+                                    "required": True,
+                                    "schema": {"title": "Hero Id", "type": "integer"},
+                                    "name": "hero_id",
+                                    "in": "path",
                                 }
-                            },
-                            "required": True,
-                        },
-                        "responses": {
-                            "200": {
-                                "description": "Successful Response",
+                            ],
+                            "requestBody": {
                                 "content": {
                                     "application/json": {
                                         "schema": {
-                                            "$ref": "#/components/schemas/HeroPublic"
+                                            "$ref": "#/components/schemas/HeroUpdate"
                                         }
                                     }
                                 },
+                                "required": True,
                             },
-                            "422": {
-                                "description": "Validation Error",
-                                "content": {
-                                    "application/json": {
-                                        "schema": {
-                                            "$ref": "#/components/schemas/HTTPValidationError"
+                            "responses": {
+                                "200": {
+                                    "description": "Successful Response",
+                                    "content": {
+                                        "application/json": {
+                                            "schema": {
+                                                "$ref": "#/components/schemas/HeroPublic"
+                                            }
                                         }
-                                    }
+                                    },
+                                },
+                                "422": {
+                                    "description": "Validation Error",
+                                    "content": {
+                                        "application/json": {
+                                            "schema": {
+                                                "$ref": "#/components/schemas/HTTPValidationError"
+                                            }
+                                        }
+                                    },
                                 },
                             },
                         },
                     },
                 },
-            },
-            "components": {
-                "schemas": {
-                    "HTTPValidationError": {
-                        "title": "HTTPValidationError",
-                        "type": "object",
-                        "properties": {
-                            "detail": {
-                                "title": "Detail",
-                                "type": "array",
-                                "items": {
-                                    "$ref": "#/components/schemas/ValidationError"
-                                },
-                            }
-                        },
-                    },
-                    "HeroCreate": {
-                        "title": "HeroCreate",
-                        "required": ["name", "secret_name", "password"],
-                        "type": "object",
-                        "properties": {
-                            "name": {"title": "Name", "type": "string"},
-                            "secret_name": {"title": "Secret Name", "type": "string"},
-                            "age": IsDict(
-                                {
-                                    "anyOf": [{"type": "integer"}, {"type": "null"}],
-                                    "title": "Age",
+                "components": {
+                    "schemas": {
+                        "HTTPValidationError": {
+                            "title": "HTTPValidationError",
+                            "type": "object",
+                            "properties": {
+                                "detail": {
+                                    "title": "Detail",
+                                    "type": "array",
+                                    "items": {
+                                        "$ref": "#/components/schemas/ValidationError"
+                                    },
                                 }
-                            )
-                            | IsDict(
-                                {"title": "Age", "type": "integer"} # Pydantic v1
-                            ),
-                            "password": {"type": "string", "title": "Password"},
+                            },
                         },
-                    },
-                    "HeroPublic": {
-                        "title": "HeroPublic",
-                        "required": ["name", "secret_name", "id"],
-                        "type": "object",
-                        "properties": {
-                            "name": {"title": "Name", "type": "string"},
-                            "secret_name": {"title": "Secret Name", "type": "string"},
-                            "age": IsDict(
-                                {
-                                    "anyOf": [{"type": "integer"}, {"type": "null"}],
-                                    "title": "Age",
-                                }
-                            )
-                            | IsDict(
-                                {"title": "Age", "type": "integer"} # Pydantic v1
-                            ),
-                            "id": {"title": "Id", "type": "integer"},
+                        "HeroCreate": {
+                            "title": "HeroCreate",
+                            "required": ["name", "secret_name", "password"],
+                            "type": "object",
+                            "properties": {
+                                "name": {"title": "Name", "type": "string"},
+                                "secret_name": {
+                                    "title": "Secret Name",
+                                    "type": "string",
+                                },
+                                "age": IsDict(
+                                    {
+                                        "anyOf": [
+                                            {"type": "integer"},
+                                            {"type": "null"},
+                                        ],
+                                        "title": "Age",
+                                    }
+                                )
+                                | IsDict(
+                                    {"title": "Age", "type": "integer"}  # Pydantic v1
+                                ),
+                                "password": {"type": "string", "title": "Password"},
+                            },
                         },
-                    },
-                    "HeroUpdate": {
-                        "title": "HeroUpdate",
-                        "type": "object",
-                        "properties": {
-                            "name": IsDict(
-                                {
-                                    "anyOf": [{"type": "string"}, {"type": "null"}],
-                                    "title": "Name",
-                                }
-                            )
-                            | IsDict(
-                                {"title": "Name", "type": "string"} # Pydantic v1
-                            ),
-                            "secret_name": IsDict(
-                                {
-                                    "anyOf": [{"type": "string"}, {"type": "null"}],
+                        "HeroPublic": {
+                            "title": "HeroPublic",
+                            "required": ["name", "secret_name", "id"],
+                            "type": "object",
+                            "properties": {
+                                "name": {"title": "Name", "type": "string"},
+                                "secret_name": {
                                     "title": "Secret Name",
-                                }
-                            )
-                            | IsDict(
-                                {"title": "Secret Name", "type": "string"} # Pydantic v1
-                            ),
-                            "age": IsDict(
-                                {
-                                    "anyOf": [{"type": "integer"}, {"type": "null"}],
-                                    "title": "Age",
-                                }
-                            )
-                            | IsDict(
-                                {"title": "Age", "type": "integer"} # Pydantic v1
-                            ),
-                            "password": IsDict(
-                                {
-                                    "anyOf": [{"type": "string"}, {"type": "null"}],
-                                    "title": "Password",
-                                }
-                            )
-                            | IsDict(
-                                {"title": "Password", "type": "string"} # Pydantic v1
-                            ),
+                                    "type": "string",
+                                },
+                                "age": IsDict(
+                                    {
+                                        "anyOf": [
+                                            {"type": "integer"},
+                                            {"type": "null"},
+                                        ],
+                                        "title": "Age",
+                                    }
+                                )
+                                | IsDict(
+                                    {"title": "Age", "type": "integer"}  # Pydantic v1
+                                ),
+                                "id": {"title": "Id", "type": "integer"},
+                            },
                         },
-                    },
-                    "ValidationError": {
-                        "title": "ValidationError",
-                        "required": ["loc", "msg", "type"],
-                        "type": "object",
-                        "properties": {
-                            "loc": {
-                                "title": "Location",
-                                "type": "array",
-                                "items": {
-                                    "anyOf": [{"type": "string"}, {"type": "integer"}]
+                        "HeroUpdate": {
+                            "title": "HeroUpdate",
+                            "type": "object",
+                            "properties": {
+                                "name": IsDict(
+                                    {
+                                        "anyOf": [{"type": "string"}, {"type": "null"}],
+                                        "title": "Name",
+                                    }
+                                )
+                                | IsDict(
+                                    {"title": "Name", "type": "string"}  # Pydantic v1
+                                ),
+                                "secret_name": IsDict(
+                                    {
+                                        "anyOf": [{"type": "string"}, {"type": "null"}],
+                                        "title": "Secret Name",
+                                    }
+                                )
+                                | IsDict(
+                                    {
+                                        "title": "Secret Name",
+                                        "type": "string",
+                                    }  # Pydantic v1
+                                ),
+                                "age": IsDict(
+                                    {
+                                        "anyOf": [
+                                            {"type": "integer"},
+                                            {"type": "null"},
+                                        ],
+                                        "title": "Age",
+                                    }
+                                )
+                                | IsDict(
+                                    {"title": "Age", "type": "integer"}  # Pydantic v1
+                                ),
+                                "password": IsDict(
+                                    {
+                                        "anyOf": [{"type": "string"}, {"type": "null"}],
+                                        "title": "Password",
+                                    }
+                                )
+                                | IsDict(
+                                    {
+                                        "title": "Password",
+                                        "type": "string",
+                                    }  # Pydantic v1
+                                ),
+                            },
+                        },
+                        "ValidationError": {
+                            "title": "ValidationError",
+                            "required": ["loc", "msg", "type"],
+                            "type": "object",
+                            "properties": {
+                                "loc": {
+                                    "title": "Location",
+                                    "type": "array",
+                                    "items": {
+                                        "anyOf": [
+                                            {"type": "string"},
+                                            {"type": "integer"},
+                                        ]
+                                    },
                                 },
+                                "msg": {"title": "Message", "type": "string"},
+                                "type": {"title": "Error Type", "type": "string"},
                             },
-                            "msg": {"title": "Message", "type": "string"},
-                            "type": {"title": "Error Type", "type": "string"},
                         },
-                    },
-                }
-            },
-        }
+                    }
+                },
+            }
+        )
index e1d0d5f5eef8b2e0163f5edc94b65ae3e1d1c5fe..a75aa637053ed1e0df1bd0fca8b90f9a2033d19f 100644 (file)
@@ -7,9 +7,11 @@ from unittest.mock import patch
 import pytest
 from sqlalchemy import inspect
 from sqlalchemy.engine.reflection import Inspector
-from sqlmodel import create_engine, SQLModel # Added SQLModel for potential use if main doesn't create tables
+from sqlmodel import (  # Added SQLModel for potential use if main doesn't create tables
+    create_engine,
+)
 
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 
 @pytest.fixture(
@@ -19,7 +21,9 @@ from ...conftest import get_testing_print_function, needs_py310, PrintMock
         pytest.param("tutorial001_py310", marks=needs_py310),
     ],
 )
-def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any): # clear_sqlmodel ensures fresh DB state
+def get_module(
+    request: pytest.FixtureRequest, clear_sqlmodel: Any
+):  # clear_sqlmodel ensures fresh DB state
     module_name = request.param
     full_module_name = f"docs_src.tutorial.indexes.{module_name}"
 
@@ -31,16 +35,19 @@ def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any): # clear_sql
     # These tests usually define engine in their main() or globally.
     # We'll ensure it's set up for the test a standard way.
     mod.sqlite_url = "sqlite://"
-    mod.engine = create_engine(mod.sqlite_url) # connect_args not typically in these non-FastAPI examples
+    mod.engine = create_engine(
+        mod.sqlite_url
+    )  # connect_args not typically in these non-FastAPI examples
 
     # Ensure tables are created. Some tutorials do it in main, others expect it externally.
     # If mod.main() is expected to create tables, this might be redundant but safe.
     # If Hero model is defined globally, SQLModel.metadata.create_all(mod.engine) can be used.
     if hasattr(mod, "Hero") and hasattr(mod.Hero, "metadata"):
-         mod.Hero.metadata.create_all(mod.engine)
-    elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"): # Fallback if Hero specific metadata not found
-         mod.SQLModel.metadata.create_all(mod.engine)
-
+        mod.Hero.metadata.create_all(mod.engine)
+    elif hasattr(mod, "SQLModel") and hasattr(
+        mod.SQLModel, "metadata"
+    ):  # Fallback if Hero specific metadata not found
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
@@ -83,23 +90,30 @@ def test_tutorial(print_mock: PrintMock, module: types.ModuleType):
 
     found_indexes_simplified = []
     for index in indexes:
-        found_indexes_simplified.append({
-            "name": index["name"],
-            "column_names": sorted(index["column_names"]), # Sort for consistency
-            "unique": index["unique"],
-            # Not including dialect_options as it can vary or be empty
-        })
+        found_indexes_simplified.append(
+            {
+                "name": index["name"],
+                "column_names": sorted(index["column_names"]),  # Sort for consistency
+                "unique": index["unique"],
+                # Not including dialect_options as it can vary or be empty
+            }
+        )
 
     expected_indexes_simplified = []
     for index in expected_indexes:
-        expected_indexes_simplified.append({
-            "name": index["name"],
-            "column_names": sorted(index["column_names"]),
-            "unique": index["unique"],
-        })
+        expected_indexes_simplified.append(
+            {
+                "name": index["name"],
+                "column_names": sorted(index["column_names"]),
+                "unique": index["unique"],
+            }
+        )
 
     for expected_index in expected_indexes_simplified:
-        assert expected_index in found_indexes_simplified, f"Expected index {expected_index['name']} not found or mismatch."
+        assert expected_index in found_indexes_simplified, (
+            f"Expected index {expected_index['name']} not found or mismatch."
+        )
 
-    assert len(found_indexes_simplified) == len(expected_indexes_simplified), \
+    assert len(found_indexes_simplified) == len(expected_indexes_simplified), (
         f"Mismatch in number of indexes. Found: {len(found_indexes_simplified)}, Expected: {len(expected_indexes_simplified)}"
+    )
index 97454c0b0deeea9221ba682188f7e14f75c91dd9..687a15c3eda6841c7eaa897c9682bb47e4f5d719 100644 (file)
@@ -7,9 +7,9 @@ from unittest.mock import patch
 import pytest
 from sqlalchemy import inspect
 from sqlalchemy.engine.reflection import Inspector
-from sqlmodel import create_engine, SQLModel # Added SQLModel
+from sqlmodel import create_engine  # Added SQLModel
 
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 
 @pytest.fixture(
@@ -32,9 +32,9 @@ def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     mod.engine = create_engine(mod.sqlite_url)
 
     if hasattr(mod, "Hero") and hasattr(mod.Hero, "metadata"):
-         mod.Hero.metadata.create_all(mod.engine)
+        mod.Hero.metadata.create_all(mod.engine)
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
@@ -55,7 +55,7 @@ def test_tutorial(print_mock: PrintMock, module: types.ModuleType):
     expected_indexes = [
         {
             "name": "ix_hero_name",
-            "dialect_options": {}, # Included for completeness but not strictly compared below
+            "dialect_options": {},  # Included for completeness but not strictly compared below
             "column_names": ["name"],
             "unique": 0,
         },
@@ -69,22 +69,29 @@ def test_tutorial(print_mock: PrintMock, module: types.ModuleType):
 
     found_indexes_simplified = []
     for index in indexes:
-        found_indexes_simplified.append({
-            "name": index["name"],
-            "column_names": sorted(index["column_names"]),
-            "unique": index["unique"],
-        })
+        found_indexes_simplified.append(
+            {
+                "name": index["name"],
+                "column_names": sorted(index["column_names"]),
+                "unique": index["unique"],
+            }
+        )
 
     expected_indexes_simplified = []
     for index in expected_indexes:
-        expected_indexes_simplified.append({
-            "name": index["name"],
-            "column_names": sorted(index["column_names"]),
-            "unique": index["unique"],
-        })
+        expected_indexes_simplified.append(
+            {
+                "name": index["name"],
+                "column_names": sorted(index["column_names"]),
+                "unique": index["unique"],
+            }
+        )
 
     for expected_index in expected_indexes_simplified:
-        assert expected_index in found_indexes_simplified, f"Expected index {expected_index['name']} not found or mismatch."
+        assert expected_index in found_indexes_simplified, (
+            f"Expected index {expected_index['name']} not found or mismatch."
+        )
 
-    assert len(found_indexes_simplified) == len(expected_indexes_simplified), \
+    assert len(found_indexes_simplified) == len(expected_indexes_simplified), (
         f"Mismatch in number of indexes. Found: {len(found_indexes_simplified)}, Expected: {len(expected_indexes_simplified)}"
+    )
index 2c7bd965beba285f73c4f73ab4f2d13e1bb58b40..4745dbd2dc8de7d0ea46fe67a617a2db1a5da71c 100644 (file)
@@ -4,9 +4,13 @@ import types
 from typing import Any
 
 import pytest
-from sqlmodel import create_engine, SQLModel, Session, select # Ensure all necessary SQLModel parts are imported
+from sqlmodel import (  # Ensure all necessary SQLModel parts are imported
+    Session,
+    create_engine,
+    select,
+)
 
-from ...conftest import needs_py310 # Adjusted for typical conftest location
+from ...conftest import needs_py310  # Adjusted for typical conftest location
 
 
 @pytest.fixture(
@@ -25,26 +29,28 @@ def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     else:
         mod = importlib.import_module(full_module_name)
 
-    mod.sqlite_url = "sqlite://" # Ensure this is consistent
-    mod.engine = create_engine(mod.sqlite_url) # Standard engine setup
+    mod.sqlite_url = "sqlite://"  # Ensure this is consistent
+    mod.engine = create_engine(mod.sqlite_url)  # Standard engine setup
 
     # Table creation is usually in main() for these examples or implicitly by SQLModel.metadata.create_all
     # If main() creates tables, calling it here might be redundant if test_tutorial also calls it.
     # For safety, ensure tables are created if Hero model is defined directly in the module.
     if hasattr(mod, "Hero") and hasattr(mod.Hero, "metadata"):
-         mod.Hero.metadata.create_all(mod.engine)
+        mod.Hero.metadata.create_all(mod.engine)
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
 
-def test_tutorial(module: types.ModuleType, clear_sqlmodel: Any): # clear_sqlmodel still useful for DB state
+def test_tutorial(
+    module: types.ModuleType, clear_sqlmodel: Any
+):  # clear_sqlmodel still useful for DB state
     # If module.main() is responsible for creating data and potentially tables, call it.
     # The fixture get_module now ensures the engine is set and tables are created if models are defined.
     # If main() also sets up engine/tables, ensure it's idempotent or adjust.
     # Typically, main() in these tutorials contains the primary logic to be tested (e.g., data insertion).
-    module.main() # This should execute the tutorial's data insertion logic
+    module.main()  # This should execute the tutorial's data insertion logic
 
     with Session(module.engine) as session:
         heroes = session.exec(select(module.Hero)).all()
index d8cfe950390ec183c83209d80ba7b5ba34d6a39e..d90d463462ac5389270e1962d725782bd2a39bd0 100644 (file)
@@ -4,13 +4,13 @@ import types
 from typing import Any
 
 import pytest
-from sqlmodel import create_engine, SQLModel, Session, select
+from sqlmodel import Session, SQLModel, create_engine, select
 
-from ...conftest import needs_py310, clear_sqlmodel as clear_sqlmodel_fixture # Use aliased import
+from ...conftest import needs_py310  # Use aliased import
 
 
 @pytest.fixture(
-    name="module", # Fixture provides the main module to be tested (tutorial002 variant)
+    name="module",  # Fixture provides the main module to be tested (tutorial002 variant)
     params=[
         "tutorial002",
         pytest.param("tutorial002_py310", marks=needs_py310),
@@ -76,8 +76,10 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel_fixture: Any):
     return mod_tut002
 
 
-def test_tutorial(module: types.ModuleType, clear_sqlmodel_fixture: Any): # `module` is tutorial002 with .Team attached
-    module.main() # Executes the tutorial002's data insertion logic
+def test_tutorial(
+    module: types.ModuleType, clear_sqlmodel_fixture: Any
+):  # `module` is tutorial002 with .Team attached
+    module.main()  # Executes the tutorial002's data insertion logic
 
     with Session(module.engine) as session:
         hero_spider_boy = session.exec(
@@ -88,7 +90,9 @@ def test_tutorial(module: types.ModuleType, clear_sqlmodel_fixture: Any): # `mod
             select(module.Team).where(module.Team.name == "Preventers")
         ).one()
         assert hero_spider_boy.team_id == team_preventers.id
-        assert hero_spider_boy.team == team_preventers # This checks the relationship resolves
+        assert (
+            hero_spider_boy.team == team_preventers
+        )  # This checks the relationship resolves
 
         heroes = session.exec(select(module.Hero)).all()
 
index ecb4235231d42e1dd551f013ad1dde1b67ff1032..566cb42b4134085847caa132d60d6ac8c97e1ac8 100644 (file)
@@ -4,7 +4,7 @@ import types
 from typing import Any
 
 import pytest
-from sqlmodel import create_engine, SQLModel, Session, select
+from sqlmodel import Session, create_engine, select
 
 from ...conftest import needs_py310
 
@@ -30,12 +30,16 @@ def get_module(request: pytest.FixtureRequest, clear_sqlmodel: Any):
 
     # Create tables. Tutorial003.py in insert focuses on refresh, so tables and initial data are key.
     # It's likely main() handles this. If not, direct creation is a fallback.
-    if hasattr(mod, "create_db_and_tables"): # Some tutorials use this helper
+    if hasattr(mod, "create_db_and_tables"):  # Some tutorials use this helper
         mod.create_db_and_tables()
-    elif hasattr(mod, "Hero") and hasattr(mod.Hero, "metadata"): # Check for Hero model metadata
-         mod.Hero.metadata.create_all(mod.engine)
-    elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"): # Generic fallback
-         mod.SQLModel.metadata.create_all(mod.engine)
+    elif hasattr(mod, "Hero") and hasattr(
+        mod.Hero, "metadata"
+    ):  # Check for Hero model metadata
+        mod.Hero.metadata.create_all(mod.engine)
+    elif hasattr(mod, "SQLModel") and hasattr(
+        mod.SQLModel, "metadata"
+    ):  # Generic fallback
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 3978ca09ccabf737ea460be1d2869660cdfb5a41..ab73b1c0cf99cc04ed9ec870f757e73b0cf03e7c 100644 (file)
@@ -5,12 +5,11 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel # Added SQLModel for table creation
+from sqlmodel import create_engine  # Added SQLModel for table creation
 
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
-
-expected_calls_tutorial001 = [ # Renamed to be specific
+expected_calls_tutorial001 = [  # Renamed to be specific
     [
         [
             {"id": 1, "name": "Deadpond", "secret_name": "Dive Wilson", "age": None},
@@ -33,7 +32,9 @@ expected_calls_tutorial001 = [ # Renamed to be specific
         pytest.param("tutorial001_py310", marks=needs_py310),
     ],
 )
-def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any): # Changed name for clarity
+def module_fixture(
+    request: pytest.FixtureRequest, clear_sqlmodel: Any
+):  # Changed name for clarity
     module_name = request.param
     # Corrected module path
     full_module_name = f"docs_src.tutorial.offset_and_limit.{module_name}"
@@ -50,9 +51,9 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any): # Chang
     # If not, this is a safeguard.
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         # This function should ideally call SQLModel.metadata.create_all(engine)
-        pass # Assuming main() will call it or tables are created before select
+        pass  # Assuming main() will call it or tables are created before select
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index cb89901ebf128947b15bdfbe06e5ce305a050719..0afede24fb91e8600e43328ba03a50c9c73e7d67 100644 (file)
@@ -5,12 +5,11 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
+from sqlmodel import create_engine
 
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
-
-expected_calls_tutorial002 = [ # Renamed for specificity
+expected_calls_tutorial002 = [  # Renamed for specificity
     [
         [
             {
@@ -46,9 +45,9 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     mod.engine = create_engine(mod.sqlite_url)
 
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
-        pass # Assuming main() calls it
+        pass  # Assuming main() calls it
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index e74b451344341aee076cc04f8a44f8c1aff5b8da..30cd51d9cf3a7282c3e7414a790e838439c509bd 100644 (file)
@@ -5,12 +5,11 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
+from sqlmodel import create_engine
 
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
-
-expected_calls_tutorial003 = [ # Renamed for specificity
+expected_calls_tutorial003 = [  # Renamed for specificity
     [
         [
             {
@@ -44,9 +43,9 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     mod.engine = create_engine(mod.sqlite_url)
 
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
-        pass # Assuming main() calls it
+        pass  # Assuming main() calls it
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index e7c35d8427a962ce87a9a70988e3fe96662bbd90..7969e4c9a694f4310c4844c024b4004798a31fc2 100644 (file)
@@ -5,12 +5,11 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
+from sqlmodel import create_engine
 
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
-
-expected_calls_tutorial004 = [ # Renamed for specificity
+expected_calls_tutorial004 = [  # Renamed for specificity
     [
         [
             {"name": "Dr. Weird", "secret_name": "Steve Weird", "age": 36, "id": 6},
@@ -40,9 +39,9 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     mod.engine = create_engine(mod.sqlite_url)
 
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
-        pass # Assuming main() calls it
+        pass  # Assuming main() calls it
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 7cb20196a3a644493db318cc5d9735a15220a24c..6e96075152ab235f99b82b03e239b8c9e35faa78 100644 (file)
@@ -5,12 +5,11 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
+from sqlmodel import create_engine
 
-from ...conftest import get_testing_print_function, needs_py39, needs_py310, PrintMock
+from ...conftest import PrintMock, get_testing_print_function, needs_py39, needs_py310
 
-
-expected_calls_tutorial001 = [ # Renamed for specificity
+expected_calls_tutorial001 = [  # Renamed for specificity
     [
         "Deadpond:",
         {"id": 1, "secret_name": "Dive Wilson", "age": None, "name": "Deadpond"},
@@ -68,7 +67,9 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
         # We assume it's called by main() or the test setup is fine if it's not explicitly called here.
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine) # Create all tables known to this module's metadata
+        mod.SQLModel.metadata.create_all(
+            mod.engine
+        )  # Create all tables known to this module's metadata
 
     return mod
 
index 53e3ccc32e1e5c3d3bb0369474736a1c58e4f8e5..958232fb260ab31547bebd1c0802364f12d66592 100644 (file)
@@ -5,12 +5,11 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
+from sqlmodel import create_engine
 
-from ...conftest import get_testing_print_function, needs_py39, needs_py310, PrintMock
+from ...conftest import PrintMock, get_testing_print_function, needs_py39, needs_py310
 
-
-expected_calls_tutorial002 = [ # Renamed for specificity
+expected_calls_tutorial002 = [  # Renamed for specificity
     [
         "Deadpond:",
         {"id": 1, "secret_name": "Dive Wilson", "age": None, "name": "Deadpond"},
@@ -91,7 +90,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index f2889de8b47f8518a86cf1f03a2c07f3a9d51352..27ef8f9ab7cf33909a3fa25df44e975731ef6adc 100644 (file)
@@ -5,12 +5,11 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
+from sqlmodel import create_engine
 
-from ...conftest import get_testing_print_function, needs_py39, needs_py310, PrintMock
+from ...conftest import PrintMock, get_testing_print_function, needs_py39, needs_py310
 
-
-expected_calls_tutorial003 = [ # Renamed for specificity
+expected_calls_tutorial003 = [  # Renamed for specificity
     [
         "Z-Force hero:",
         {"name": "Deadpond", "secret_name": "Dive Wilson", "id": 1, "age": None},
@@ -87,7 +86,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 4cf2066720ea709ad53b2e6f4c08062e2abfe7b6..1df681685b35da362303ff72faf48a6f95b0fd3d 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel # Added SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine  # Added SQLModel
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 expected_calls_tutorial001 = [
     [
@@ -48,7 +47,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
         # or even lead to issues if not idempotent. Let main() handle it.
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index f904eb88b49b5a887cd8e2e61a5bb59ec0beb05b..de557912d3c4d36c07b13af488d234d25d1aa79f 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 expected_calls_tutorial002 = [["Hero:", None]]
 
@@ -35,7 +34,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 34240cfd3ed9231588229dda67d2628f036ebce4..cb8e6f6fd46a3f4ccd5982cb93d12259270b8b09 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 expected_calls_tutorial003 = [
     [
@@ -40,7 +39,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 56cb6b5d49e88107a3eb070dc5066e4eac17888f..ad8738db3331637bad9bc02e7913701a42e4196b 100644 (file)
@@ -5,17 +5,20 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlalchemy.exc import MultipleResultsFound # Keep this import
-from sqlmodel import create_engine, SQLModel, Session, delete # Ensure Session and delete are imported
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlalchemy.exc import MultipleResultsFound  # Keep this import
+from sqlmodel import (  # Ensure Session and delete are imported
+    Session,
+    create_engine,
+    delete,
+)
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 expected_calls_tutorial004 = [
     [
         "Hero:",
         {
-            "id": 1, # Assuming ID will be 1 after clearing and adding one hero
+            "id": 1,  # Assuming ID will be 1 after clearing and adding one hero
             "name": "Test Hero",
             "secret_name": "Secret Test Hero",
             "age": 24,
@@ -50,7 +53,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     # The original test calls main() first, then manipulates DB.
     # The fixture should ensure tables are ready.
     if hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
@@ -63,17 +66,19 @@ def test_tutorial(module: types.ModuleType, print_mock: PrintMock, clear_sqlmode
     # First, let main() run to create initial data and trigger the expected exception.
     # The create_db_and_tables is called within main() in docs_src/tutorial/one/tutorial004.py
     with pytest.raises(MultipleResultsFound):
-        module.main() # This function in the tutorial is expected to raise this
+        module.main()  # This function in the tutorial is expected to raise this
 
     # After the expected exception, the original test clears the Hero table and adds a specific hero.
     with Session(module.engine) as session:
         # The delete statement needs the actual Hero class from the module
         session.exec(delete(module.Hero))
-        session.add(module.Hero(name="Test Hero", secret_name="Secret Test Hero", age=24))
+        session.add(
+            module.Hero(name="Test Hero", secret_name="Secret Test Hero", age=24)
+        )
         session.commit()
 
     # Now, test the select_heroes function part
     with patch("builtins.print", new=get_testing_print_function(print_mock.calls)):
-        module.select_heroes() # This function is defined in the tutorial module
+        module.select_heroes()  # This function is defined in the tutorial module
 
     assert print_mock.calls == expected_calls_tutorial004
index eaf88d0524aa47a88cdac4f51016f30aa5c4c528..da45d5e50f0c6917cce5c33e20bf03b2480fd886 100644 (file)
@@ -5,11 +5,14 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlalchemy.exc import NoResultFound # Keep this import
-from sqlmodel import create_engine, SQLModel, Session, delete # Ensure Session and delete
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlalchemy.exc import NoResultFound  # Keep this import
+from sqlmodel import (  # Ensure Session and delete
+    Session,
+    create_engine,
+    delete,
+)
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 expected_calls_tutorial005 = [
     [
@@ -49,7 +52,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     # The create_db_and_tables() is called inside main() *after* the select that fails.
     # So, the fixture should create tables.
     if hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine) # Create tables
+        mod.SQLModel.metadata.create_all(mod.engine)  # Create tables
 
     return mod
 
@@ -69,16 +72,20 @@ def test_tutorial(module: types.ModuleType, print_mock: PrintMock, clear_sqlmode
     # The `clear_sqlmodel` fixture ensures the DB is clean (tables might be recreated by module_fixture).
 
     with pytest.raises(NoResultFound):
-        module.main() # This should execute the part of main() that expects no results
+        module.main()  # This should execute the part of main() that expects no results
 
     # Phase 2: Test select_heroes() after manually adding a hero
     # This part matches the original test's logic after the expected exception.
     with Session(module.engine) as session:
-        session.exec(delete(module.Hero)) # Clear any heroes if main() somehow added them
-        session.add(module.Hero(name="Test Hero", secret_name="Secret Test Hero", age=24))
+        session.exec(
+            delete(module.Hero)
+        )  # Clear any heroes if main() somehow added them
+        session.add(
+            module.Hero(name="Test Hero", secret_name="Secret Test Hero", age=24)
+        )
         session.commit()
 
     with patch("builtins.print", new=get_testing_print_function(print_mock.calls)):
-        module.select_heroes() # This function is defined in the tutorial module
+        module.select_heroes()  # This function is defined in the tutorial module
 
     assert print_mock.calls == expected_calls_tutorial005
index 7725c825ad7cd88a2434f44e4d9887427a68e19a..e7c55b6a9b7fdfc342654242011a4806e859c78f 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 expected_calls_tutorial006 = [
     [
@@ -40,7 +39,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 8ad3c7981977995b28441e84f8cb07bbb5d84730..c6ded93bfe82e301219b9d4e375dd47a8c8ecb03 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 expected_calls_tutorial007 = [
     [
@@ -40,7 +39,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 7179050772d82b20b20c3b37237b1897bce03f74..7b0e0e853dd19b83b8ce13a2af1e1e96c0c01eed 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 expected_calls_tutorial008 = [
     [
@@ -40,7 +39,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index ca94cf80d9ea85b52da49624e6d756ed414de768..d697be0e84de041a5d06068a4900339494bde6aa 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 expected_calls_tutorial009 = [["Hero:", None]]
 
@@ -35,7 +34,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index b4091922da5327dad9ff91b9784addb49087db98..acc598ee368f299f2eb90cd521656e1089344342 100644 (file)
@@ -5,11 +5,10 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlalchemy.exc import SAWarning # Keep this import
-from sqlmodel import create_engine, SQLModel
-
-from ....conftest import get_testing_print_function, needs_py39, needs_py310, PrintMock
+from sqlalchemy.exc import SAWarning  # Keep this import
+from sqlmodel import create_engine
 
+from ....conftest import PrintMock, get_testing_print_function, needs_py39, needs_py310
 
 expected_calls_tutorial001 = [
     [
@@ -186,12 +185,12 @@ expected_calls_tutorial001 = [
             "age": None,
             "id": 3,
             "secret_name": "Pedro Parqueador",
-            "team_id": 2, # Still has team_id locally until committed and refreshed
+            "team_id": 2,  # Still has team_id locally until committed and refreshed
             "name": "Spider-Boy",
         },
     ],
     [
-        "Preventers Team Heroes again:", # Before commit, team still has Spider-Boy
+        "Preventers Team Heroes again:",  # Before commit, team still has Spider-Boy
         [
             {
                 "age": 48,
@@ -232,7 +231,7 @@ expected_calls_tutorial001 = [
     ],
     ["After committing"],
     [
-        "Spider-Boy after commit:", # team_id is None after commit and refresh
+        "Spider-Boy after commit:",  # team_id is None after commit and refresh
         {
             "age": None,
             "id": 3,
@@ -242,7 +241,7 @@ expected_calls_tutorial001 = [
         },
     ],
     [
-        "Preventers Team Heroes after commit:", # Spider-Boy is removed
+        "Preventers Team Heroes after commit:",  # Spider-Boy is removed
         [
             {
                 "age": 48,
@@ -287,7 +286,9 @@ expected_calls_tutorial001 = [
 )
 def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     module_name = request.param
-    full_module_name = f"docs_src.tutorial.relationship_attributes.back_populates.{module_name}"
+    full_module_name = (
+        f"docs_src.tutorial.relationship_attributes.back_populates.{module_name}"
+    )
 
     if full_module_name in sys.modules:
         mod = importlib.reload(sys.modules[full_module_name])
@@ -300,7 +301,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 62e3c79a65ca0f18a1e74dee2eff92bc1ff6d2ae..c4dbda4193597d740c9ba88d41d1b81ee160f55d 100644 (file)
@@ -5,11 +5,11 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-# SAWarning is not expected in this tutorial's test, so not importing it from sqlalchemy.exc
-from sqlmodel import create_engine, SQLModel
 
-from ....conftest import get_testing_print_function, needs_py39, needs_py310, PrintMock
+# SAWarning is not expected in this tutorial's test, so not importing it from sqlalchemy.exc
+from sqlmodel import create_engine
 
+from ....conftest import PrintMock, get_testing_print_function, needs_py39, needs_py310
 
 expected_calls_tutorial002 = [
     [
@@ -280,7 +280,9 @@ expected_calls_tutorial002 = [
 )
 def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     module_name = request.param
-    full_module_name = f"docs_src.tutorial.relationship_attributes.back_populates.{module_name}"
+    full_module_name = (
+        f"docs_src.tutorial.relationship_attributes.back_populates.{module_name}"
+    )
 
     if full_module_name in sys.modules:
         mod = importlib.reload(sys.modules[full_module_name])
@@ -293,7 +295,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 15477ed2e8a717d540c49ab28f7088bd899243f2..16b6a9eee49523cbc511bcba4ac86b5530d5d72b 100644 (file)
@@ -4,11 +4,11 @@ import types
 from typing import Any
 
 import pytest
-from sqlalchemy import inspect # Keep this
-from sqlalchemy.engine.reflection import Inspector # Keep this
-from sqlmodel import create_engine, SQLModel
+from sqlalchemy import inspect  # Keep this
+from sqlalchemy.engine.reflection import Inspector  # Keep this
+from sqlmodel import create_engine
 
-from ....conftest import needs_py39, needs_py310 # Keep conftest imports
+from ....conftest import needs_py39, needs_py310  # Keep conftest imports
 
 
 @pytest.fixture(
@@ -21,7 +21,9 @@ from ....conftest import needs_py39, needs_py310 # Keep conftest imports
 )
 def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     module_name = request.param
-    full_module_name = f"docs_src.tutorial.relationship_attributes.back_populates.{module_name}"
+    full_module_name = (
+        f"docs_src.tutorial.relationship_attributes.back_populates.{module_name}"
+    )
 
     if full_module_name in sys.modules:
         mod = importlib.reload(sys.modules[full_module_name])
@@ -41,12 +43,14 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     return mod
 
 
-def test_tutorial(module: types.ModuleType, clear_sqlmodel: Any): # print_mock not needed
+def test_tutorial(
+    module: types.ModuleType, clear_sqlmodel: Any
+):  # print_mock not needed
     # The main() function in the tutorial module is expected to create tables.
     module.main()
 
     insp: Inspector = inspect(module.engine)
     assert insp.has_table(str(module.Hero.__tablename__))
-    assert insp.has_table(str(module.Weapon.__tablename__)) # Specific to tutorial003
+    assert insp.has_table(str(module.Weapon.__tablename__))  # Specific to tutorial003
     assert insp.has_table(str(module.Power.__tablename__))  # Specific to tutorial003
     assert insp.has_table(str(module.Team.__tablename__))
index e48aca5e33f03146a4bdc41b92ce6d344b7f20fb..f1f4824a76c530553dde6f24a6b4d602feef4008 100644 (file)
@@ -5,11 +5,10 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
+from sqlmodel import create_engine
 
 # Assuming conftest.py is at tests/conftest.py, the path should be ....conftest
-from ....conftest import get_testing_print_function, needs_py39, needs_py310, PrintMock
-
+from ....conftest import PrintMock, get_testing_print_function, needs_py39, needs_py310
 
 expected_calls_tutorial001 = [
     [
@@ -113,7 +112,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
         # Assuming main() or create_db_and_tables() handles table creation
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 3f2ff4652236dc9d1091854d3a0a0844a3b706c1..5c6d01d21b0590c793b2d97a81752fce20f39a71 100644 (file)
@@ -5,11 +5,10 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
+from sqlmodel import create_engine
 
 # Adjust the import path based on the file's new location or structure
-from ....conftest import get_testing_print_function, needs_py39, needs_py310, PrintMock
-
+from ....conftest import PrintMock, get_testing_print_function, needs_py39, needs_py310
 
 expected_calls_tutorial001 = [
     [
@@ -69,7 +68,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
         # Assuming main() or create_db_and_tables() handles table creation
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index f2603dbd882112249143e4dae07b8a53056d1472..ebf0c7b25557e3a5e15a309ec74e64f9b5da76d3 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ....conftest import get_testing_print_function, needs_py39, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ....conftest import PrintMock, get_testing_print_function, needs_py39, needs_py310
 
 expected_calls_tutorial001 = [
     [
@@ -88,7 +87,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index df4797fa4344b704c523a127332ef1fd3c7e438c..a2c556091f9771d8cbc11aeee56863c89bb2d59a 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ....conftest import get_testing_print_function, needs_py39, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ....conftest import PrintMock, get_testing_print_function, needs_py39, needs_py310
 
 expected_calls_tutorial002 = [
     [
@@ -105,7 +104,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 842a151e6795108984827a7e114bc3265f4bc877..6742dc783b4b8f8205aa5e9e1f34529318e97eb9 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ....conftest import get_testing_print_function, needs_py39, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ....conftest import PrintMock, get_testing_print_function, needs_py39, needs_py310
 
 expected_calls_tutorial003 = [
     [
@@ -105,7 +104,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 9e602fa5e83e6037a8dd5ffdf3031258eea8fb4f..4d9df5bc237a5a318f56736a29654218cf8deb89 100644 (file)
@@ -6,14 +6,15 @@ from unittest.mock import patch
 
 import pytest
 from sqlalchemy.exc import IntegrityError
-from sqlmodel import create_engine, SQLModel, Session, select, delete # Added Session, select, delete just in case module uses them
-
-from ....conftest import get_testing_print_function, needs_py39, needs_py310, PrintMock
+from sqlmodel import  # Added Session, select, delete just in case module uses them
+    create_engine,
+)
 
+from ....conftest import PrintMock, get_testing_print_function, needs_py39, needs_py310
 
 expected_calls_tutorial004 = [
     [
-        "Created hero:", # From create_heroes() called by main()
+        "Created hero:",  # From create_heroes() called by main()
         {
             "age": None,
             "id": 1,
@@ -39,11 +40,11 @@ expected_calls_tutorial004 = [
             "id": 3,
             "name": "Spider-Boy",
             "secret_name": "Pedro Parqueador",
-            "team_id": None, # Initially no team
+            "team_id": None,  # Initially no team
         },
     ],
     [
-        "Updated hero:", # Spider-Boy gets a team
+        "Updated hero:",  # Spider-Boy gets a team
         {
             "age": None,
             "id": 3,
@@ -53,7 +54,7 @@ expected_calls_tutorial004 = [
         },
     ],
     [
-        "Team Wakaland:", # Team Wakaland is created
+        "Team Wakaland:",  # Team Wakaland is created
         {"headquarters": "Wakaland Capital City", "id": 3, "name": "Wakaland"},
     ],
     # The main() in tutorial004.py (cascade_delete) is try_to_delete_team_preventers_alternative.
@@ -84,10 +85,10 @@ expected_calls_tutorial004_corrected = [
         "Created hero:",
         {
             "age": None,
-            "id": 1, # Assuming IDs start from 1 after clear_sqlmodel
+            "id": 1,  # Assuming IDs start from 1 after clear_sqlmodel
             "name": "Deadpond",
             "secret_name": "Dive Wilson",
-            "team_id": 1, # Assuming Preventers team gets ID 1
+            "team_id": 1,  # Assuming Preventers team gets ID 1
         },
     ],
     [
@@ -97,7 +98,7 @@ expected_calls_tutorial004_corrected = [
             "id": 2,
             "name": "Rusty-Man",
             "secret_name": "Tommy Sharp",
-            "team_id": 1, # Also Preventers
+            "team_id": 1,  # Also Preventers
         },
     ],
     [
@@ -107,7 +108,7 @@ expected_calls_tutorial004_corrected = [
             "id": 3,
             "name": "Spider-Boy",
             "secret_name": "Pedro Parqueador",
-            "team_id": 1, # Also Preventers
+            "team_id": 1,  # Also Preventers
         },
     ],
 ]
@@ -138,7 +139,9 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     # However, if other functions from module were tested independently, tables would need to exist.
     # For safety and consistency with other fixtures:
     if hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine) # Ensure tables are there before main might use them.
+        mod.SQLModel.metadata.create_all(
+            mod.engine
+        )  # Ensure tables are there before main might use them.
 
     return mod
 
@@ -153,7 +156,7 @@ def test_tutorial(module: types.ModuleType, print_mock: PrintMock, clear_sqlmode
 
     with pytest.raises(IntegrityError) as excinfo:
         with patch("builtins.print", new=get_testing_print_function(print_mock.calls)):
-            module.main() # This is try_to_delete_team_preventers_alternative
+            module.main()  # This is try_to_delete_team_preventers_alternative
 
     # Check the prints that occurred *before* the exception was raised
     assert print_mock.calls == expected_calls_tutorial004_corrected
index a1364091627145a65b86212909d16ecd1d632005..7679d7e089a117fa62cd1ea9436224ec64d32cad 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ....conftest import get_testing_print_function, needs_py39, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ....conftest import PrintMock, get_testing_print_function, needs_py39, needs_py310
 
 expected_calls_tutorial005 = [
     [
@@ -56,7 +55,7 @@ expected_calls_tutorial005 = [
         {"id": 3, "headquarters": "Wakaland Capital City", "name": "Wakaland"},
     ],
     [
-        "Team with removed heroes:", # This print is specific to tutorial005.py's main()
+        "Team with removed heroes:",  # This print is specific to tutorial005.py's main()
         {"id": 3, "headquarters": "Wakaland Capital City", "name": "Wakaland"},
     ],
     [
@@ -109,7 +108,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index eca37f3f6329eb4f74360f8939d4c76e8febf72a..a8bd0ab2d8fecf76517de204c4e1eb104a3e91b1 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ....conftest import get_testing_print_function, needs_py39, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ....conftest import PrintMock, get_testing_print_function, needs_py39, needs_py310
 
 expected_calls_tutorial001 = [
     [
@@ -106,7 +105,9 @@ expected_calls_tutorial001 = [
 )
 def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     module_name = request.param
-    full_module_name = f"docs_src.tutorial.relationship_attributes.read_relationships.{module_name}"
+    full_module_name = (
+        f"docs_src.tutorial.relationship_attributes.read_relationships.{module_name}"
+    )
 
     if full_module_name in sys.modules:
         mod = importlib.reload(sys.modules[full_module_name])
@@ -119,7 +120,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 3a77ce871b20bfa6e5f5eaf5bc16897f4ac2fd4e..53140dbf7a6308d396b324e673ce7e57b491e40a 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ....conftest import get_testing_print_function, needs_py39, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ....conftest import PrintMock, get_testing_print_function, needs_py39, needs_py310
 
 expected_calls_tutorial002 = [
     [
@@ -131,7 +130,7 @@ expected_calls_tutorial002 = [
             "age": None,
             "id": 3,
             "secret_name": "Pedro Parqueador",
-            "team_id": None, # This is after Spider-Boy's team is set to None
+            "team_id": None,  # This is after Spider-Boy's team is set to None
             "name": "Spider-Boy",
         },
     ],
@@ -148,7 +147,9 @@ expected_calls_tutorial002 = [
 )
 def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     module_name = request.param
-    full_module_name = f"docs_src.tutorial.relationship_attributes.read_relationships.{module_name}"
+    full_module_name = (
+        f"docs_src.tutorial.relationship_attributes.read_relationships.{module_name}"
+    )
 
     if full_module_name in sys.modules:
         mod = importlib.reload(sys.modules[full_module_name])
@@ -161,7 +162,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 165bba325b261bcb828015ceeca94a76492700d3..1d85539ad280c469b2ce3823c8817ae7d612d9f1 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 expected_calls_tutorial001 = [
     [
@@ -42,9 +41,9 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     mod.engine = create_engine(mod.sqlite_url)
 
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
-        pass # Assuming main() calls it or it's handled if needed by the tutorial's main logic
+        pass  # Assuming main() calls it or it's handled if needed by the tutorial's main logic
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index ce48271fbdc587b75f8dd05a69c7ff27f909f2de..b0daf4d80f6881720489dd13b04fb08119254934 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 expected_calls_tutorial002 = [
     [
@@ -45,7 +44,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 9d7bb2ab1846078638df4788451a47eac3f3e152..c687e3c6d0d47ebfdbc87343eea94eaa85c39a7c 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 # expected_calls is defined within the test_tutorial function in the original test
 # This is fine as it's used only there.
@@ -36,7 +35,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
@@ -58,7 +57,9 @@ def test_tutorial(module: types.ModuleType, print_mock: PrintMock, clear_sqlmode
         ],
     ]
     # Preserve the original assertion logic
-    for call_item in expected_calls: # Renamed to avoid conflict with outer scope 'calls' if any
+    for (
+        call_item
+    ) in expected_calls:  # Renamed to avoid conflict with outer scope 'calls' if any
         assert call_item in print_mock.calls, "This expected item should be in the list"
         print_mock.calls.pop(print_mock.calls.index(call_item))
     assert len(print_mock.calls) == 0, "The list should only have the expected items"
index 2b75f9cfac6417cf26dc9dc42e6b8e7f0a5d5c11..eb7507517cc1146b834b7cca2ce3d1ced2b789a6 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 # expected_calls is defined within the test_tutorial function in the original test
 
@@ -35,7 +34,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 55b7232190e8892b31855442d8bd13ce04dfa55a..baefa363169e8576f38157813a5d9e4f6df0e9d4 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 expected_calls_tutorial005 = [
     [{"name": "Tarantula", "secret_name": "Natalia Roman-on", "age": 32, "id": 4}]
@@ -37,7 +36,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 899aefe8b8cc8d07ff6711d6aa760a13a24af451..3f60f6d6a5e5e6a1628c7846b2c3bb62b3d1d994 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 expected_calls_tutorial006 = [
     [{"name": "Tarantula", "secret_name": "Natalia Roman-on", "age": 32, "id": 4}],
@@ -38,7 +37,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 0abe03cf50e5180e2903d9dd04d8b6a35a7994b2..0bf615d3306a4d1a98e49cb6fdb90065e839f0d2 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 expected_calls_tutorial007 = [
     [{"id": 5, "name": "Black Lion", "secret_name": "Trevor Challa", "age": 35}],
@@ -38,7 +37,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index c28191f9d8d4615c491b3c9d8d35dd426dc74147..3fb56cba90881fb61a8bea7de7527e4337ce2795 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 expected_calls_tutorial008 = [
     [{"id": 5, "name": "Black Lion", "secret_name": "Trevor Challa", "age": 35}],
@@ -38,7 +37,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 4650407580830c8b9ba0556397db4774c72589d9..643eae4e7180a6f143224d7f7b8301cca45befdb 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 expected_calls_tutorial009 = [
     [{"name": "Tarantula", "secret_name": "Natalia Roman-on", "age": 32, "id": 4}],
@@ -46,7 +45,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index a6d481ba3a8185e3cde0fdcba73b2b560030eb70..65f54f2f620f17962730daf643db62eedf254d11 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 expected_calls_tutorial010 = [
     [{"name": "Tarantula", "secret_name": "Natalia Roman-on", "age": 32, "id": 4}],
@@ -46,7 +45,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod
 
index 30f912dd484e692b86593e159358b121d1b6ae67..0db99c434d5f31658e52275fe7764e063e63180d 100644 (file)
@@ -5,10 +5,9 @@ from typing import Any
 from unittest.mock import patch
 
 import pytest
-from sqlmodel import create_engine, SQLModel
-
-from ...conftest import get_testing_print_function, needs_py310, PrintMock
+from sqlmodel import create_engine
 
+from ...conftest import PrintMock, get_testing_print_function, needs_py310
 
 # expected_calls is defined within the test_tutorial function in the original test
 
@@ -35,7 +34,7 @@ def module_fixture(request: pytest.FixtureRequest, clear_sqlmodel: Any):
     if hasattr(mod, "create_db_and_tables") and callable(mod.create_db_and_tables):
         pass
     elif hasattr(mod, "SQLModel") and hasattr(mod.SQLModel, "metadata"):
-         mod.SQLModel.metadata.create_all(mod.engine)
+        mod.SQLModel.metadata.create_all(mod.engine)
 
     return mod