Skip to content

Commit c127aec

Browse files
committed
bugfix: let DjangoConnectionField call its resolver function
that is, the one specified using DjangoConnectionField(..., resolver=some_func)
1 parent 886ce5e commit c127aec

File tree

2 files changed

+48
-1
lines changed

2 files changed

+48
-1
lines changed

graphene_django/fields.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ def connection_resolver(
247247
def wrap_resolve(self, parent_resolver):
248248
return partial(
249249
self.connection_resolver,
250-
parent_resolver,
250+
self.resolver or parent_resolver,
251251
self.connection_type,
252252
self.get_manager(),
253253
self.get_queryset_resolver(),

graphene_django/tests/test_query.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import base64
22
import datetime
3+
from unittest.mock import ANY, Mock
34

45
import pytest
56
from django.db import models
@@ -2000,6 +2001,52 @@ 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+
20032050
def test_should_query_nullable_foreign_key():
20042051
class PetType(DjangoObjectType):
20052052
class Meta:

0 commit comments

Comments
 (0)