1
1
import base64
2
2
import datetime
3
+ from unittest .mock import ANY , Mock
3
4
4
5
import pytest
5
6
from django .db import models
@@ -2000,14 +2001,62 @@ class Query(graphene.ObjectType):
2000
2001
assert result .data == expected
2001
2002
2002
2003
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
+
2003
2050
def test_should_query_nullable_foreign_key ():
2004
2051
class PetType (DjangoObjectType ):
2005
2052
class Meta :
2006
2053
model = Pet
2054
+ fields = "__all__"
2007
2055
2008
2056
class PersonType (DjangoObjectType ):
2009
2057
class Meta :
2010
2058
model = Person
2059
+ fields = "__all__"
2011
2060
2012
2061
class Query (graphene .ObjectType ):
2013
2062
pet = graphene .Field (PetType , name = graphene .String (required = True ))
@@ -2022,10 +2071,8 @@ def resolve_person(self, info, name):
2022
2071
schema = graphene .Schema (query = Query )
2023
2072
2024
2073
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 )
2029
2076
2030
2077
query_pet = """
2031
2078
query getPet($name: String!) {
@@ -2068,6 +2115,7 @@ def test_should_query_nullable_one_to_one_relation_with_custom_resolver():
2068
2115
class FilmType (DjangoObjectType ):
2069
2116
class Meta :
2070
2117
model = Film
2118
+ fields = "__all__"
2071
2119
2072
2120
@classmethod
2073
2121
def get_queryset (cls , queryset , info ):
@@ -2076,6 +2124,7 @@ def get_queryset(cls, queryset, info):
2076
2124
class FilmDetailsType (DjangoObjectType ):
2077
2125
class Meta :
2078
2126
model = FilmDetails
2127
+ fields = "__all__"
2079
2128
2080
2129
@classmethod
2081
2130
def get_queryset (cls , queryset , info ):
0 commit comments