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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
import pytest
from django.db.models import QuerySet
from strawberry import relay
from strawberry.annotation import StrawberryAnnotation
from strawberry.relay.types import ListConnection
from strawberry_django.fields.field import StrawberryDjangoField
from tests.types import FruitType
@pytest.mark.django_db
def test_resolve_returns_queryset_with_fetched_results():
field = StrawberryDjangoField(type_annotation=StrawberryAnnotation(list[FruitType]))
result = field.get_result(None, None, [], {})
assert isinstance(result, QuerySet)
assert result._result_cache is not None # type: ignore
@pytest.mark.django_db
async def test_resolve_returns_queryset_with_fetched_results_async():
field = StrawberryDjangoField(type_annotation=StrawberryAnnotation(list[FruitType]))
result = await field.get_result(None, None, [], {})
assert isinstance(result, QuerySet)
assert result._result_cache is not None # type: ignore
@pytest.mark.django_db
def test_resolve_returns_queryset_without_fetching_results_when_disabling_it():
field = StrawberryDjangoField(type_annotation=StrawberryAnnotation(list[FruitType]))
field.disable_fetch_list_results = True
result = field.get_result(None, None, [], {})
assert isinstance(result, QuerySet)
assert result._result_cache is None # type: ignore
@pytest.mark.django_db
async def test_resolve_returns_queryset_without_fetching_results_when_disabling_it_async():
field = StrawberryDjangoField(type_annotation=StrawberryAnnotation(list[FruitType]))
field.disable_fetch_list_results = True
result = await field.get_result(None, None, [], {})
assert isinstance(result, QuerySet)
assert result._result_cache is None # type: ignore
@pytest.mark.django_db
def test_resolve_returns_queryset_without_fetching_results_for_connections():
class FruitImplementingNode(relay.Node, FruitType): ...
field = StrawberryDjangoField(
type_annotation=StrawberryAnnotation(ListConnection[FruitImplementingNode])
)
field.disable_fetch_list_results = True
result = field.get_result(None, None, [], {})
assert isinstance(result, QuerySet)
assert result._result_cache is None # type: ignore
@pytest.mark.django_db
async def test_resolve_returns_queryset_without_fetching_results_for_connections_async():
class FruitImplementingNode(relay.Node, FruitType): ...
field = StrawberryDjangoField(
type_annotation=StrawberryAnnotation(ListConnection[FruitImplementingNode])
)
field.disable_fetch_list_results = True
result = await field.get_result(None, None, [], {})
assert isinstance(result, QuerySet)
assert result._result_cache is None # type: ignore
|