Skip to content

Commit 6715817

Browse files
committed
✅ Update tests with indexes and the variability in results
1 parent 3778c03 commit 6715817

File tree

7 files changed

+60
-5
lines changed

7 files changed

+60
-5
lines changed

tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial001.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
from fastapi.testclient import TestClient
2+
from sqlalchemy import inspect
3+
from sqlalchemy.engine.reflection import Inspector
24
from sqlmodel import create_engine
35
from sqlmodel.pool import StaticPool
46

@@ -166,3 +168,16 @@ def test_tutorial(clear_sqlmodel):
166168
assert response.status_code == 200, response.text
167169

168170
assert data == openapi_schema
171+
172+
# Test inherited indexes
173+
insp: Inspector = inspect(mod.engine)
174+
indexes = insp.get_indexes(str(mod.Hero.__tablename__))
175+
expected_indexes = [
176+
{"name": "ix_hero_name", "column_names": ["name"], "unique": 0},
177+
{"name": "ix_hero_age", "column_names": ["age"], "unique": 0},
178+
]
179+
for index in expected_indexes:
180+
assert index in indexes, "This expected index should be in the indexes in DB"
181+
# Now that this index was checked, remove it from the list of indexes
182+
indexes.pop(indexes.index(index))
183+
assert len(indexes) == 0, "The database should only have the expected indexes"

tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial002.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
from fastapi.testclient import TestClient
2+
from sqlalchemy import inspect
3+
from sqlalchemy.engine.reflection import Inspector
24
from sqlmodel import create_engine
35
from sqlmodel.pool import StaticPool
46

@@ -166,3 +168,16 @@ def test_tutorial(clear_sqlmodel):
166168
assert response.status_code == 200, response.text
167169

168170
assert data == openapi_schema
171+
172+
# Test inherited indexes
173+
insp: Inspector = inspect(mod.engine)
174+
indexes = insp.get_indexes(str(mod.Hero.__tablename__))
175+
expected_indexes = [
176+
{"name": "ix_hero_age", "column_names": ["age"], "unique": 0},
177+
{"name": "ix_hero_name", "column_names": ["name"], "unique": 0},
178+
]
179+
for index in expected_indexes:
180+
assert index in indexes, "This expected index should be in the indexes in DB"
181+
# Now that this index was checked, remove it from the list of indexes
182+
indexes.pop(indexes.index(index))
183+
assert len(indexes) == 0, "The database should only have the expected indexes"

tests/test_tutorial/test_indexes/test_tutorial001.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,12 @@ def test_tutorial(clear_sqlmodel):
2424

2525
insp: Inspector = inspect(mod.engine)
2626
indexes = insp.get_indexes(str(mod.Hero.__tablename__))
27-
assert indexes == [
27+
expected_indexes = [
2828
{"name": "ix_hero_name", "column_names": ["name"], "unique": 0},
2929
{"name": "ix_hero_age", "column_names": ["age"], "unique": 0},
3030
]
31+
for index in expected_indexes:
32+
assert index in indexes, "This expected index should be in the indexes in DB"
33+
# Now that this index was checked, remove it from the list of indexes
34+
indexes.pop(indexes.index(index))
35+
assert len(indexes) == 0, "The database should only have the expected indexes"

tests/test_tutorial/test_indexes/test_tutorial006.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,12 @@ def test_tutorial(clear_sqlmodel):
2525

2626
insp: Inspector = inspect(mod.engine)
2727
indexes = insp.get_indexes(str(mod.Hero.__tablename__))
28-
assert indexes == [
28+
expected_indexes = [
2929
{"name": "ix_hero_name", "column_names": ["name"], "unique": 0},
3030
{"name": "ix_hero_age", "column_names": ["age"], "unique": 0},
3131
]
32+
for index in expected_indexes:
33+
assert index in indexes, "This expected index should be in the indexes in DB"
34+
# Now that this index was checked, remove it from the list of indexes
35+
indexes.pop(indexes.index(index))
36+
assert len(indexes) == 0, "The database should only have the expected indexes"

tests/test_tutorial/test_where/test_tutorial003.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def test_tutorial(clear_sqlmodel):
1717
with patch("builtins.print", new=new_print):
1818
mod.main()
1919

20-
assert calls == [
20+
expected_calls = [
2121
[{"id": 6, "name": "Dr. Weird", "secret_name": "Steve Weird", "age": 36}],
2222
[{"id": 3, "name": "Rusty-Man", "secret_name": "Tommy Sharp", "age": 48}],
2323
[
@@ -29,3 +29,8 @@ def test_tutorial(clear_sqlmodel):
2929
}
3030
],
3131
]
32+
for call in expected_calls:
33+
assert call in calls, "This expected item should be in the list"
34+
# Now that this item was checked, remove it from the list
35+
calls.pop(calls.index(call))
36+
assert len(calls) == 0, "The list should only have the expected items"

tests/test_tutorial/test_where/test_tutorial004.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def test_tutorial(clear_sqlmodel):
1616

1717
with patch("builtins.print", new=new_print):
1818
mod.main()
19-
assert calls == [
19+
expected_calls = [
2020
[{"id": 5, "name": "Black Lion", "secret_name": "Trevor Challa", "age": 35}],
2121
[{"id": 6, "name": "Dr. Weird", "secret_name": "Steve Weird", "age": 36}],
2222
[{"id": 3, "name": "Rusty-Man", "secret_name": "Tommy Sharp", "age": 48}],
@@ -29,3 +29,8 @@ def test_tutorial(clear_sqlmodel):
2929
}
3030
],
3131
]
32+
for call in expected_calls:
33+
assert call in calls, "This expected item should be in the list"
34+
# Now that this item was checked, remove it from the list
35+
calls.pop(calls.index(call))
36+
assert len(calls) == 0, "The list should only have the expected items"

tests/test_tutorial/test_where/test_tutorial011.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def test_tutorial(clear_sqlmodel):
1616

1717
with patch("builtins.print", new=new_print):
1818
mod.main()
19-
assert calls == [
19+
expected_calls = [
2020
[{"id": 5, "name": "Black Lion", "secret_name": "Trevor Challa", "age": 35}],
2121
[{"id": 6, "name": "Dr. Weird", "secret_name": "Steve Weird", "age": 36}],
2222
[{"id": 3, "name": "Rusty-Man", "secret_name": "Tommy Sharp", "age": 48}],
@@ -29,3 +29,8 @@ def test_tutorial(clear_sqlmodel):
2929
}
3030
],
3131
]
32+
for call in expected_calls:
33+
assert call in calls, "This expected item should be in the list"
34+
# Now that this item was checked, remove it from the list
35+
calls.pop(calls.index(call))
36+
assert len(calls) == 0, "The list should only have the expected items"

0 commit comments

Comments
 (0)