1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
import pytest
from django.db.models import Prefetch
from strawberry_django.queryset import get_queryset_config
from tests.projects.models import Milestone, Project
def test_queryset_config_survives_filter():
qs = Project.objects.all()
config = get_queryset_config(qs)
config.optimized = True
new_qs = qs.filter(pk=1)
assert get_queryset_config(new_qs).optimized is True
def test_queryset_config_survives_prefetch_related():
qs = Project.objects.all()
config = get_queryset_config(qs)
config.optimized = True
new_qs = qs.prefetch_related("milestones")
assert get_queryset_config(new_qs).optimized is True
def test_queryset_config_survives_select_related():
qs = Milestone.objects.all()
config = get_queryset_config(qs)
config.optimized = True
new_qs = qs.select_related("project")
assert get_queryset_config(new_qs).optimized is True
@pytest.mark.django_db(transaction=True)
def test_queryset_config_survives_in_prefetch_queryset():
Project.objects.create()
qs = Milestone.objects.all()
config = get_queryset_config(qs)
config.optimized = True
project = (
Project.objects.all()
.prefetch_related(Prefetch("milestones", queryset=qs))
.get()
)
assert get_queryset_config(project.milestones.all()).optimized is True
|