✅ Add tests
This commit is contained in:
@@ -0,0 +1,293 @@
|
||||
from typing import Any, Dict, List, Union
|
||||
from unittest.mock import patch
|
||||
import pytest
|
||||
|
||||
from sqlalchemy import inspect
|
||||
from sqlalchemy.engine.reflection import Inspector
|
||||
from sqlmodel import create_engine
|
||||
from sqlmodel.pool import StaticPool
|
||||
from sqlalchemy.exc import SAWarning
|
||||
|
||||
from ....conftest import get_testing_print_function
|
||||
|
||||
expected_calls = [
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 1,
|
||||
"secret_name": "Dive Wilson",
|
||||
"team_id": 1,
|
||||
"name": "Deadpond",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"age": 48,
|
||||
"id": 2,
|
||||
"secret_name": "Tommy Sharp",
|
||||
"team_id": 2,
|
||||
"name": "Rusty-Man",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": None,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Updated hero:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": 2,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Team Wakaland:",
|
||||
{"headquarters": "Wakaland Capital City", "id": 3, "name": "Wakaland"},
|
||||
],
|
||||
[
|
||||
"Preventers new hero:",
|
||||
{
|
||||
"age": 32,
|
||||
"id": 6,
|
||||
"secret_name": "Natalia Roman-on",
|
||||
"team_id": 2,
|
||||
"name": "Tarantula",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers new hero:",
|
||||
{
|
||||
"age": 36,
|
||||
"id": 7,
|
||||
"secret_name": "Steve Weird",
|
||||
"team_id": 2,
|
||||
"name": "Dr. Weird",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers new hero:",
|
||||
{
|
||||
"age": 93,
|
||||
"id": 8,
|
||||
"secret_name": "Esteban Rogelios",
|
||||
"team_id": 2,
|
||||
"name": "Captain North America",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers heroes:",
|
||||
[
|
||||
{
|
||||
"age": 48,
|
||||
"id": 2,
|
||||
"secret_name": "Tommy Sharp",
|
||||
"team_id": 2,
|
||||
"name": "Rusty-Man",
|
||||
},
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": 2,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
{
|
||||
"age": 32,
|
||||
"id": 6,
|
||||
"secret_name": "Natalia Roman-on",
|
||||
"team_id": 2,
|
||||
"name": "Tarantula",
|
||||
},
|
||||
{
|
||||
"age": 36,
|
||||
"id": 7,
|
||||
"secret_name": "Steve Weird",
|
||||
"team_id": 2,
|
||||
"name": "Dr. Weird",
|
||||
},
|
||||
{
|
||||
"age": 93,
|
||||
"id": 8,
|
||||
"secret_name": "Esteban Rogelios",
|
||||
"team_id": 2,
|
||||
"name": "Captain North America",
|
||||
},
|
||||
],
|
||||
],
|
||||
[
|
||||
"Hero Spider-Boy:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": 2,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers Team:",
|
||||
{"headquarters": "Sharp Tower", "id": 2, "name": "Preventers"},
|
||||
],
|
||||
[
|
||||
"Preventers Team Heroes:",
|
||||
[
|
||||
{
|
||||
"age": 48,
|
||||
"id": 2,
|
||||
"secret_name": "Tommy Sharp",
|
||||
"team_id": 2,
|
||||
"name": "Rusty-Man",
|
||||
},
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": 2,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
{
|
||||
"age": 32,
|
||||
"id": 6,
|
||||
"secret_name": "Natalia Roman-on",
|
||||
"team_id": 2,
|
||||
"name": "Tarantula",
|
||||
},
|
||||
{
|
||||
"age": 36,
|
||||
"id": 7,
|
||||
"secret_name": "Steve Weird",
|
||||
"team_id": 2,
|
||||
"name": "Dr. Weird",
|
||||
},
|
||||
{
|
||||
"age": 93,
|
||||
"id": 8,
|
||||
"secret_name": "Esteban Rogelios",
|
||||
"team_id": 2,
|
||||
"name": "Captain North America",
|
||||
},
|
||||
],
|
||||
],
|
||||
[
|
||||
"Spider-Boy without team:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": 2,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers Team Heroes again:",
|
||||
[
|
||||
{
|
||||
"age": 48,
|
||||
"id": 2,
|
||||
"secret_name": "Tommy Sharp",
|
||||
"team_id": 2,
|
||||
"name": "Rusty-Man",
|
||||
},
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": 2,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
{
|
||||
"age": 32,
|
||||
"id": 6,
|
||||
"secret_name": "Natalia Roman-on",
|
||||
"team_id": 2,
|
||||
"name": "Tarantula",
|
||||
},
|
||||
{
|
||||
"age": 36,
|
||||
"id": 7,
|
||||
"secret_name": "Steve Weird",
|
||||
"team_id": 2,
|
||||
"name": "Dr. Weird",
|
||||
},
|
||||
{
|
||||
"age": 93,
|
||||
"id": 8,
|
||||
"secret_name": "Esteban Rogelios",
|
||||
"team_id": 2,
|
||||
"name": "Captain North America",
|
||||
},
|
||||
],
|
||||
],
|
||||
["After committing"],
|
||||
[
|
||||
"Spider-Boy after commit:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": None,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers Team Heroes after commit:",
|
||||
[
|
||||
{
|
||||
"age": 48,
|
||||
"id": 2,
|
||||
"secret_name": "Tommy Sharp",
|
||||
"team_id": 2,
|
||||
"name": "Rusty-Man",
|
||||
},
|
||||
{
|
||||
"age": 32,
|
||||
"id": 6,
|
||||
"secret_name": "Natalia Roman-on",
|
||||
"team_id": 2,
|
||||
"name": "Tarantula",
|
||||
},
|
||||
{
|
||||
"age": 36,
|
||||
"id": 7,
|
||||
"secret_name": "Steve Weird",
|
||||
"team_id": 2,
|
||||
"name": "Dr. Weird",
|
||||
},
|
||||
{
|
||||
"age": 93,
|
||||
"id": 8,
|
||||
"secret_name": "Esteban Rogelios",
|
||||
"team_id": 2,
|
||||
"name": "Captain North America",
|
||||
},
|
||||
],
|
||||
],
|
||||
]
|
||||
|
||||
|
||||
def test_tutorial(clear_sqlmodel):
|
||||
from docs_src.tutorial.relationship_attributes.back_populates import (
|
||||
tutorial001 as mod,
|
||||
)
|
||||
|
||||
mod.sqlite_url = "sqlite://"
|
||||
mod.engine = create_engine(mod.sqlite_url)
|
||||
calls = []
|
||||
|
||||
new_print = get_testing_print_function(calls)
|
||||
|
||||
with patch("builtins.print", new=new_print):
|
||||
with pytest.warns(SAWarning):
|
||||
mod.main()
|
||||
assert calls == expected_calls
|
||||
@@ -0,0 +1,283 @@
|
||||
from typing import Any, Dict, List, Union
|
||||
from unittest.mock import patch
|
||||
|
||||
from sqlalchemy import inspect
|
||||
from sqlalchemy.engine.reflection import Inspector
|
||||
from sqlmodel import create_engine
|
||||
from sqlmodel.pool import StaticPool
|
||||
|
||||
from ....conftest import get_testing_print_function
|
||||
|
||||
expected_calls = [
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 1,
|
||||
"secret_name": "Dive Wilson",
|
||||
"team_id": 1,
|
||||
"name": "Deadpond",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"age": 48,
|
||||
"id": 2,
|
||||
"secret_name": "Tommy Sharp",
|
||||
"team_id": 2,
|
||||
"name": "Rusty-Man",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": None,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Updated hero:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": 2,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Team Wakaland:",
|
||||
{"id": 3, "name": "Wakaland", "headquarters": "Wakaland Capital City"},
|
||||
],
|
||||
[
|
||||
"Preventers new hero:",
|
||||
{
|
||||
"age": 32,
|
||||
"id": 6,
|
||||
"secret_name": "Natalia Roman-on",
|
||||
"team_id": 2,
|
||||
"name": "Tarantula",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers new hero:",
|
||||
{
|
||||
"age": 36,
|
||||
"id": 7,
|
||||
"secret_name": "Steve Weird",
|
||||
"team_id": 2,
|
||||
"name": "Dr. Weird",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers new hero:",
|
||||
{
|
||||
"age": 93,
|
||||
"id": 8,
|
||||
"secret_name": "Esteban Rogelios",
|
||||
"team_id": 2,
|
||||
"name": "Captain North America",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers heroes:",
|
||||
[
|
||||
{
|
||||
"age": 48,
|
||||
"id": 2,
|
||||
"secret_name": "Tommy Sharp",
|
||||
"team_id": 2,
|
||||
"name": "Rusty-Man",
|
||||
},
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": 2,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
{
|
||||
"age": 32,
|
||||
"id": 6,
|
||||
"secret_name": "Natalia Roman-on",
|
||||
"team_id": 2,
|
||||
"name": "Tarantula",
|
||||
},
|
||||
{
|
||||
"age": 36,
|
||||
"id": 7,
|
||||
"secret_name": "Steve Weird",
|
||||
"team_id": 2,
|
||||
"name": "Dr. Weird",
|
||||
},
|
||||
{
|
||||
"age": 93,
|
||||
"id": 8,
|
||||
"secret_name": "Esteban Rogelios",
|
||||
"team_id": 2,
|
||||
"name": "Captain North America",
|
||||
},
|
||||
],
|
||||
],
|
||||
[
|
||||
"Hero Spider-Boy:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": 2,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers Team:",
|
||||
{"id": 2, "name": "Preventers", "headquarters": "Sharp Tower"},
|
||||
],
|
||||
[
|
||||
"Preventers Team Heroes:",
|
||||
[
|
||||
{
|
||||
"age": 48,
|
||||
"id": 2,
|
||||
"secret_name": "Tommy Sharp",
|
||||
"team_id": 2,
|
||||
"name": "Rusty-Man",
|
||||
},
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": 2,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
{
|
||||
"age": 32,
|
||||
"id": 6,
|
||||
"secret_name": "Natalia Roman-on",
|
||||
"team_id": 2,
|
||||
"name": "Tarantula",
|
||||
},
|
||||
{
|
||||
"age": 36,
|
||||
"id": 7,
|
||||
"secret_name": "Steve Weird",
|
||||
"team_id": 2,
|
||||
"name": "Dr. Weird",
|
||||
},
|
||||
{
|
||||
"age": 93,
|
||||
"id": 8,
|
||||
"secret_name": "Esteban Rogelios",
|
||||
"team_id": 2,
|
||||
"name": "Captain North America",
|
||||
},
|
||||
],
|
||||
],
|
||||
[
|
||||
"Spider-Boy without team:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": 2,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers Team Heroes again:",
|
||||
[
|
||||
{
|
||||
"age": 48,
|
||||
"id": 2,
|
||||
"secret_name": "Tommy Sharp",
|
||||
"team_id": 2,
|
||||
"name": "Rusty-Man",
|
||||
},
|
||||
{
|
||||
"age": 32,
|
||||
"id": 6,
|
||||
"secret_name": "Natalia Roman-on",
|
||||
"team_id": 2,
|
||||
"name": "Tarantula",
|
||||
},
|
||||
{
|
||||
"age": 36,
|
||||
"id": 7,
|
||||
"secret_name": "Steve Weird",
|
||||
"team_id": 2,
|
||||
"name": "Dr. Weird",
|
||||
},
|
||||
{
|
||||
"age": 93,
|
||||
"id": 8,
|
||||
"secret_name": "Esteban Rogelios",
|
||||
"team_id": 2,
|
||||
"name": "Captain North America",
|
||||
},
|
||||
],
|
||||
],
|
||||
["After committing"],
|
||||
[
|
||||
"Spider-Boy after commit:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": None,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers Team Heroes after commit:",
|
||||
[
|
||||
{
|
||||
"age": 48,
|
||||
"id": 2,
|
||||
"secret_name": "Tommy Sharp",
|
||||
"team_id": 2,
|
||||
"name": "Rusty-Man",
|
||||
},
|
||||
{
|
||||
"age": 32,
|
||||
"id": 6,
|
||||
"secret_name": "Natalia Roman-on",
|
||||
"team_id": 2,
|
||||
"name": "Tarantula",
|
||||
},
|
||||
{
|
||||
"age": 36,
|
||||
"id": 7,
|
||||
"secret_name": "Steve Weird",
|
||||
"team_id": 2,
|
||||
"name": "Dr. Weird",
|
||||
},
|
||||
{
|
||||
"age": 93,
|
||||
"id": 8,
|
||||
"secret_name": "Esteban Rogelios",
|
||||
"team_id": 2,
|
||||
"name": "Captain North America",
|
||||
},
|
||||
],
|
||||
],
|
||||
]
|
||||
|
||||
|
||||
def test_tutorial(clear_sqlmodel):
|
||||
from docs_src.tutorial.relationship_attributes.back_populates import (
|
||||
tutorial002 as mod,
|
||||
)
|
||||
|
||||
mod.sqlite_url = "sqlite://"
|
||||
mod.engine = create_engine(mod.sqlite_url)
|
||||
calls = []
|
||||
|
||||
new_print = get_testing_print_function(calls)
|
||||
|
||||
with patch("builtins.print", new=new_print):
|
||||
mod.main()
|
||||
assert calls == expected_calls
|
||||
@@ -0,0 +1,24 @@
|
||||
from typing import Any, Dict, List, Union
|
||||
from unittest.mock import patch
|
||||
|
||||
from sqlalchemy import inspect
|
||||
from sqlalchemy.engine.reflection import Inspector
|
||||
from sqlmodel import create_engine
|
||||
from sqlmodel.pool import StaticPool
|
||||
|
||||
from ....conftest import get_testing_print_function
|
||||
|
||||
|
||||
def test_tutorial(clear_sqlmodel):
|
||||
from docs_src.tutorial.relationship_attributes.back_populates import (
|
||||
tutorial003 as mod,
|
||||
)
|
||||
|
||||
mod.sqlite_url = "sqlite://"
|
||||
mod.engine = create_engine(mod.sqlite_url)
|
||||
mod.main()
|
||||
insp: Inspector = inspect(mod.engine)
|
||||
assert insp.has_table(str(mod.Hero.__tablename__))
|
||||
assert insp.has_table(str(mod.Weapon.__tablename__))
|
||||
assert insp.has_table(str(mod.Power.__tablename__))
|
||||
assert insp.has_table(str(mod.Team.__tablename__))
|
||||
@@ -0,0 +1,102 @@
|
||||
from typing import Any, Dict, List, Union
|
||||
from unittest.mock import patch
|
||||
|
||||
from sqlalchemy import inspect
|
||||
from sqlalchemy.engine.reflection import Inspector
|
||||
from sqlmodel import create_engine
|
||||
from sqlmodel.pool import StaticPool
|
||||
|
||||
from ....conftest import get_testing_print_function
|
||||
|
||||
expected_calls = [
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 1,
|
||||
"secret_name": "Dive Wilson",
|
||||
"team_id": 1,
|
||||
"name": "Deadpond",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"age": 48,
|
||||
"id": 2,
|
||||
"secret_name": "Tommy Sharp",
|
||||
"team_id": 2,
|
||||
"name": "Rusty-Man",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": None,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Updated hero:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": 2,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Team Wakaland:",
|
||||
{"id": 3, "headquarters": "Wakaland Capital City", "name": "Wakaland"},
|
||||
],
|
||||
[
|
||||
"Preventers new hero:",
|
||||
{
|
||||
"age": 32,
|
||||
"id": 6,
|
||||
"secret_name": "Natalia Roman-on",
|
||||
"team_id": 2,
|
||||
"name": "Tarantula",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers new hero:",
|
||||
{
|
||||
"age": 36,
|
||||
"id": 7,
|
||||
"secret_name": "Steve Weird",
|
||||
"team_id": 2,
|
||||
"name": "Dr. Weird",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers new hero:",
|
||||
{
|
||||
"age": 93,
|
||||
"id": 8,
|
||||
"secret_name": "Esteban Rogelios",
|
||||
"team_id": 2,
|
||||
"name": "Captain North America",
|
||||
},
|
||||
],
|
||||
]
|
||||
|
||||
|
||||
def test_tutorial(clear_sqlmodel):
|
||||
from docs_src.tutorial.relationship_attributes.create_and_update_relationships import (
|
||||
tutorial001 as mod,
|
||||
)
|
||||
|
||||
mod.sqlite_url = "sqlite://"
|
||||
mod.engine = create_engine(mod.sqlite_url)
|
||||
calls = []
|
||||
|
||||
new_print = get_testing_print_function(calls)
|
||||
|
||||
with patch("builtins.print", new=new_print):
|
||||
mod.main()
|
||||
assert calls == expected_calls
|
||||
@@ -0,0 +1,58 @@
|
||||
from typing import Any, Dict, List, Union
|
||||
from unittest.mock import patch
|
||||
|
||||
from sqlalchemy import inspect
|
||||
from sqlalchemy.engine.reflection import Inspector
|
||||
from sqlmodel import create_engine
|
||||
from sqlmodel.pool import StaticPool
|
||||
|
||||
from ....conftest import get_testing_print_function
|
||||
|
||||
expected_calls = [
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"name": "Deadpond",
|
||||
"age": None,
|
||||
"team_id": 1,
|
||||
"id": 1,
|
||||
"secret_name": "Dive Wilson",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"name": "Rusty-Man",
|
||||
"age": 48,
|
||||
"team_id": 2,
|
||||
"id": 2,
|
||||
"secret_name": "Tommy Sharp",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"name": "Spider-Boy",
|
||||
"age": None,
|
||||
"team_id": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
},
|
||||
],
|
||||
]
|
||||
|
||||
|
||||
def test_tutorial(clear_sqlmodel):
|
||||
from docs_src.tutorial.relationship_attributes.define_relationship_attributes import (
|
||||
tutorial001 as mod,
|
||||
)
|
||||
|
||||
mod.sqlite_url = "sqlite://"
|
||||
mod.engine = create_engine(mod.sqlite_url)
|
||||
calls = []
|
||||
|
||||
new_print = get_testing_print_function(calls)
|
||||
|
||||
with patch("builtins.print", new=new_print):
|
||||
mod.main()
|
||||
assert calls == expected_calls
|
||||
@@ -0,0 +1,110 @@
|
||||
from typing import Any, Dict, List, Union
|
||||
from unittest.mock import patch
|
||||
|
||||
from sqlalchemy import inspect
|
||||
from sqlalchemy.engine.reflection import Inspector
|
||||
from sqlmodel import create_engine
|
||||
from sqlmodel.pool import StaticPool
|
||||
|
||||
from ....conftest import get_testing_print_function
|
||||
|
||||
expected_calls = [
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 1,
|
||||
"secret_name": "Dive Wilson",
|
||||
"team_id": 1,
|
||||
"name": "Deadpond",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"age": 48,
|
||||
"id": 2,
|
||||
"secret_name": "Tommy Sharp",
|
||||
"team_id": 2,
|
||||
"name": "Rusty-Man",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": None,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Updated hero:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": 2,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Team Wakaland:",
|
||||
{"headquarters": "Wakaland Capital City", "id": 3, "name": "Wakaland"},
|
||||
],
|
||||
[
|
||||
"Preventers new hero:",
|
||||
{
|
||||
"age": 32,
|
||||
"id": 6,
|
||||
"secret_name": "Natalia Roman-on",
|
||||
"team_id": 2,
|
||||
"name": "Tarantula",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers new hero:",
|
||||
{
|
||||
"age": 36,
|
||||
"id": 7,
|
||||
"secret_name": "Steve Weird",
|
||||
"team_id": 2,
|
||||
"name": "Dr. Weird",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers new hero:",
|
||||
{
|
||||
"age": 93,
|
||||
"id": 8,
|
||||
"secret_name": "Esteban Rogelios",
|
||||
"team_id": 2,
|
||||
"name": "Captain North America",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Spider-Boy's team:",
|
||||
{"headquarters": "Wakaland Capital City", "id": 3, "name": "Wakaland"},
|
||||
],
|
||||
[
|
||||
"Spider-Boy's team again:",
|
||||
{"headquarters": "Sharp Tower", "id": 2, "name": "Preventers"},
|
||||
],
|
||||
]
|
||||
|
||||
|
||||
def test_tutorial(clear_sqlmodel):
|
||||
from docs_src.tutorial.relationship_attributes.read_relationships import (
|
||||
tutorial001 as mod,
|
||||
)
|
||||
|
||||
mod.sqlite_url = "sqlite://"
|
||||
mod.engine = create_engine(mod.sqlite_url)
|
||||
calls = []
|
||||
|
||||
new_print = get_testing_print_function(calls)
|
||||
|
||||
with patch("builtins.print", new=new_print):
|
||||
mod.main()
|
||||
assert calls == expected_calls
|
||||
@@ -0,0 +1,152 @@
|
||||
from typing import Any, Dict, List, Union
|
||||
from unittest.mock import patch
|
||||
|
||||
from sqlalchemy import inspect
|
||||
from sqlalchemy.engine.reflection import Inspector
|
||||
from sqlmodel import create_engine
|
||||
from sqlmodel.pool import StaticPool
|
||||
|
||||
from ....conftest import get_testing_print_function
|
||||
|
||||
expected_calls = [
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 1,
|
||||
"secret_name": "Dive Wilson",
|
||||
"team_id": 1,
|
||||
"name": "Deadpond",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"age": 48,
|
||||
"id": 2,
|
||||
"secret_name": "Tommy Sharp",
|
||||
"team_id": 2,
|
||||
"name": "Rusty-Man",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Created hero:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": None,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Updated hero:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": 2,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Team Wakaland:",
|
||||
{"id": 3, "name": "Wakaland", "headquarters": "Wakaland Capital City"},
|
||||
],
|
||||
[
|
||||
"Preventers new hero:",
|
||||
{
|
||||
"age": 32,
|
||||
"id": 6,
|
||||
"secret_name": "Natalia Roman-on",
|
||||
"team_id": 2,
|
||||
"name": "Tarantula",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers new hero:",
|
||||
{
|
||||
"age": 36,
|
||||
"id": 7,
|
||||
"secret_name": "Steve Weird",
|
||||
"team_id": 2,
|
||||
"name": "Dr. Weird",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers new hero:",
|
||||
{
|
||||
"age": 93,
|
||||
"id": 8,
|
||||
"secret_name": "Esteban Rogelios",
|
||||
"team_id": 2,
|
||||
"name": "Captain North America",
|
||||
},
|
||||
],
|
||||
[
|
||||
"Preventers heroes:",
|
||||
[
|
||||
{
|
||||
"age": 48,
|
||||
"id": 2,
|
||||
"secret_name": "Tommy Sharp",
|
||||
"team_id": 2,
|
||||
"name": "Rusty-Man",
|
||||
},
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": 2,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
{
|
||||
"age": 32,
|
||||
"id": 6,
|
||||
"secret_name": "Natalia Roman-on",
|
||||
"team_id": 2,
|
||||
"name": "Tarantula",
|
||||
},
|
||||
{
|
||||
"age": 36,
|
||||
"id": 7,
|
||||
"secret_name": "Steve Weird",
|
||||
"team_id": 2,
|
||||
"name": "Dr. Weird",
|
||||
},
|
||||
{
|
||||
"age": 93,
|
||||
"id": 8,
|
||||
"secret_name": "Esteban Rogelios",
|
||||
"team_id": 2,
|
||||
"name": "Captain North America",
|
||||
},
|
||||
],
|
||||
],
|
||||
[
|
||||
"Spider-Boy without team:",
|
||||
{
|
||||
"age": None,
|
||||
"id": 3,
|
||||
"secret_name": "Pedro Parqueador",
|
||||
"team_id": None,
|
||||
"name": "Spider-Boy",
|
||||
},
|
||||
],
|
||||
]
|
||||
|
||||
|
||||
def test_tutorial(clear_sqlmodel):
|
||||
from docs_src.tutorial.relationship_attributes.read_relationships import (
|
||||
tutorial002 as mod,
|
||||
)
|
||||
|
||||
mod.sqlite_url = "sqlite://"
|
||||
mod.engine = create_engine(mod.sqlite_url)
|
||||
calls = []
|
||||
|
||||
new_print = get_testing_print_function(calls)
|
||||
|
||||
with patch("builtins.print", new=new_print):
|
||||
mod.main()
|
||||
assert calls == expected_calls
|
||||
Reference in New Issue
Block a user