Skip to content

Commit 69de724

Browse files
committed
Added field description based on function doc
1 parent 23ef63e commit 69de724

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

graphene/core/fields.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ def type_wrapper(self, field_type):
9191
field_type = GraphQLNonNull(field_type)
9292
return field_type
9393

94-
@memoize
9594
def internal_type(self, schema):
9695
field_type = self.field_type
9796
if isinstance(field_type, Field):
@@ -127,16 +126,19 @@ def internal_field(self, schema):
127126
if not internal_type:
128127
raise Exception("Internal type for field %s is None" % self)
129128

129+
description = self.description
130130
resolve_fn = self.get_resolve_fn()
131131
if resolve_fn:
132+
description = resolve_fn.__doc__ or description
133+
132134
@wraps(resolve_fn)
133135
def resolver(*args):
134136
return self.resolve(*args)
135137
else:
136138
resolver = self.resolve
137139
return GraphQLField(
138140
internal_type,
139-
description=self.description,
141+
description=description,
140142
args=self.args,
141143
resolver=resolver,
142144
)

tests/core/test_fields.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,10 @@
2424
class ObjectType(object):
2525
_meta = Options()
2626

27-
def resolve(self, *args, **kwargs):
27+
def resolve_customdoc(self, *args, **kwargs):
28+
'''Resolver documentation'''
2829
return None
2930

30-
def can_resolve(self, *args):
31-
return True
32-
3331
def __str__(self):
3432
return "ObjectType"
3533

@@ -172,3 +170,10 @@ def test_field_repr_contributed():
172170
f = StringField()
173171
f.contribute_to_class(ot, 'field_name')
174172
assert repr(f) == "<graphene.core.fields.StringField: field_name>"
173+
174+
175+
def test_field_resolve_objecttype_cos():
176+
f = StringField()
177+
f.contribute_to_class(ot, 'customdoc')
178+
field = f.internal_field(schema)
179+
assert field.description == 'Resolver documentation'

0 commit comments

Comments
 (0)