Skip to content

Commit c024616

Browse files
committed
Fix CI
1 parent 0019d9a commit c024616

1 file changed

Lines changed: 30 additions & 34 deletions

File tree

tests/models/test_orm.py

Lines changed: 30 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -462,12 +462,9 @@ async def test_sqlalchemy_orm_get_list_supports_additional_search_and_prefetch(e
462462
return
463463

464464
admin_model = get_admin_model(event.__class__)
465-
admin_model.search_fields = ["name"]
466-
objs, total = await admin_model.orm_get_list(
467-
search="Test Tournament",
468-
prefetch_related_fields=["tournament"],
469-
additional_search_fields=["tournament__name"],
470-
)
465+
admin_model.search_fields = ["name", "tournament__name"]
466+
admin_model.list_select_related = ("tournament",)
467+
objs, total = await admin_model.orm_get_list(search="Test Tournament")
471468

472469
assert isinstance(total, int)
473470
assert total > 0
@@ -480,14 +477,8 @@ async def test_sqlalchemy_orm_get_list_prefetch_edge_cases(event, session_with_t
480477
return
481478

482479
admin_model = get_admin_model(event.__class__)
483-
objs, total = await admin_model.orm_get_list(
484-
prefetch_related_fields=[
485-
"does_not_exist",
486-
"tournament__does_not_exist",
487-
"tournament__events",
488-
"tournament__name",
489-
]
490-
)
480+
admin_model.search_fields = ["name"]
481+
objs, total = await admin_model.orm_get_list(search="event")
491482
assert isinstance(total, int)
492483
assert isinstance(objs, list)
493484

@@ -503,13 +494,27 @@ async def test_sqlalchemy_orm_get_list_prefetch_no_related_model(event, session_
503494
original_getattrs = sqlalchemy_orm.getattrs
504495

505496
def fake_getattrs(obj, attr_path, default=None):
506-
if attr_path == "property.mapper.class_":
497+
if attr_path == "mapper.class_":
507498
return None
508499
return original_getattrs(obj, attr_path, default=default)
509500

510501
monkeypatch.setattr(sqlalchemy_orm, "getattrs", fake_getattrs)
511502

512-
objs, total = await admin_model.orm_get_list(prefetch_related_fields=["tournament__events"])
503+
admin_model.search_fields = ["tournament__name"]
504+
objs, total = await admin_model.orm_get_list(search="anything")
505+
assert total == 0
506+
assert objs == []
507+
508+
509+
async def test_sqlalchemy_orm_get_list_search_uses_select_related(event, session_with_type):
510+
_, session_type = session_with_type
511+
if session_type != "sqlalchemy":
512+
return
513+
514+
admin_model = get_admin_model(event.__class__)
515+
admin_model.search_fields = ["name"]
516+
admin_model.list_select_related = ("tournament",)
517+
objs, total = await admin_model.orm_get_list(search="event")
513518
assert isinstance(total, int)
514519
assert isinstance(objs, list)
515520

@@ -812,12 +817,9 @@ async def test_ponyorm_orm_get_list_supports_additional_search_and_prefetch(even
812817
return
813818

814819
admin_model = get_admin_model(event.__class__)
815-
admin_model.search_fields = ["name"]
816-
objs, total = await admin_model.orm_get_list(
817-
search="Test Tournament",
818-
prefetch_related_fields=["tournament"],
819-
additional_search_fields=["tournament__name"],
820-
)
820+
admin_model.search_fields = ["name", "tournament__name"]
821+
admin_model.list_select_related = ("tournament",)
822+
objs, total = await admin_model.orm_get_list(search="Test Tournament")
821823

822824
assert isinstance(total, int)
823825
assert total > 0
@@ -1048,12 +1050,9 @@ async def test_tortoise_orm_get_list_supports_additional_search_and_prefetch(eve
10481050
from fastadmin.models.orms.tortoise import TortoiseModelAdmin
10491051

10501052
admin_model = TortoiseModelAdmin(event.__class__)
1051-
admin_model.search_fields = ["name"]
1052-
objs, total = await admin_model.orm_get_list(
1053-
search="Test Tournament",
1054-
prefetch_related_fields=["tournament"],
1055-
additional_search_fields=["tournament__name"],
1056-
)
1053+
admin_model.search_fields = ["name", "tournament__name"]
1054+
admin_model.list_select_related = ("tournament",)
1055+
objs, total = await admin_model.orm_get_list(search="Test Tournament")
10571056

10581057
assert isinstance(total, int)
10591058
assert total > 0
@@ -1066,12 +1065,9 @@ async def test_django_orm_get_list_supports_additional_search_and_prefetch(event
10661065
return
10671066

10681067
admin_model = get_admin_model(event.__class__)
1069-
admin_model.search_fields = ["name"]
1070-
objs, total = await admin_model.orm_get_list(
1071-
search="Test Tournament",
1072-
prefetch_related_fields=["tournament"],
1073-
additional_search_fields=["tournament__name"],
1074-
)
1068+
admin_model.search_fields = ["name", "tournament__name"]
1069+
admin_model.list_select_related = ("tournament",)
1070+
objs, total = await admin_model.orm_get_list(search="Test Tournament")
10751071

10761072
assert isinstance(total, int)
10771073
assert total > 0

0 commit comments

Comments
 (0)