11import base64
22import datetime
3+ from unittest .mock import ANY , Mock
34
45import pytest
56from django .db import models
@@ -2000,14 +2001,62 @@ class Query(graphene.ObjectType):
20002001 assert result .data == expected
20012002
20022003
2004+ def test_connection_should_call_resolver_function ():
2005+ resolver_mock = Mock (
2006+ name = "resolver" ,
2007+ return_value = [
2008+ Reporter (first_name = "Some" , last_name = "One" ),
2009+ Reporter (first_name = "John" , last_name = "Doe" ),
2010+ ],
2011+ )
2012+
2013+ class ReporterType (DjangoObjectType ):
2014+ class Meta :
2015+ model = Reporter
2016+ fields = "__all__"
2017+ interfaces = [Node ]
2018+
2019+ class Query (graphene .ObjectType ):
2020+ reporters = DjangoConnectionField (ReporterType , resolver = resolver_mock )
2021+
2022+ schema = graphene .Schema (query = Query )
2023+ result = schema .execute (
2024+ """
2025+ query {
2026+ reporters {
2027+ edges {
2028+ node {
2029+ firstName
2030+ lastName
2031+ }
2032+ }
2033+ }
2034+ }
2035+ """
2036+ )
2037+
2038+ resolver_mock .assert_called_once_with (None , ANY )
2039+ assert not result .errors
2040+ assert result .data == {
2041+ "reporters" : {
2042+ "edges" : [
2043+ {"node" : {"firstName" : "Some" , "lastName" : "One" }},
2044+ {"node" : {"firstName" : "John" , "lastName" : "Doe" }},
2045+ ],
2046+ },
2047+ }
2048+
2049+
20032050def test_should_query_nullable_foreign_key ():
20042051 class PetType (DjangoObjectType ):
20052052 class Meta :
20062053 model = Pet
2054+ fields = "__all__"
20072055
20082056 class PersonType (DjangoObjectType ):
20092057 class Meta :
20102058 model = Person
2059+ fields = "__all__"
20112060
20122061 class Query (graphene .ObjectType ):
20132062 pet = graphene .Field (PetType , name = graphene .String (required = True ))
@@ -2022,10 +2071,8 @@ def resolve_person(self, info, name):
20222071 schema = graphene .Schema (query = Query )
20232072
20242073 person = Person .objects .create (name = "Jane" )
2025- [
2026- Pet .objects .create (name = "Stray dog" , age = 1 ),
2027- Pet .objects .create (name = "Jane's dog" , owner = person , age = 1 ),
2028- ]
2074+ Pet .objects .create (name = "Stray dog" , age = 1 )
2075+ Pet .objects .create (name = "Jane's dog" , owner = person , age = 1 )
20292076
20302077 query_pet = """
20312078 query getPet($name: String!) {
@@ -2068,6 +2115,7 @@ def test_should_query_nullable_one_to_one_relation_with_custom_resolver():
20682115 class FilmType (DjangoObjectType ):
20692116 class Meta :
20702117 model = Film
2118+ fields = "__all__"
20712119
20722120 @classmethod
20732121 def get_queryset (cls , queryset , info ):
@@ -2076,6 +2124,7 @@ def get_queryset(cls, queryset, info):
20762124 class FilmDetailsType (DjangoObjectType ):
20772125 class Meta :
20782126 model = FilmDetails
2127+ fields = "__all__"
20792128
20802129 @classmethod
20812130 def get_queryset (cls , queryset , info ):
0 commit comments