From 2a288eab9d98b90120b1cb446623611b13a943bc Mon Sep 17 00:00:00 2001 From: Markus Padourek Date: Thu, 28 Jul 2016 12:11:42 +0100 Subject: [PATCH] Fix a bug where you can not directly return `relay.Connection.for_node(NodeType)(edges=edges, page_info=relay.PageInfo(has_next_page=has_next_page))` in a resolver --- graphene/relay/fields.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/graphene/relay/fields.py b/graphene/relay/fields.py index e7238f5a..b80437be 100644 --- a/graphene/relay/fields.py +++ b/graphene/relay/fields.py @@ -24,8 +24,8 @@ class ConnectionField(Field): last=Int(), description=description, **kwargs) - self.connection_type = connection_type - self.edge_type = edge_type + self.connection_type = connection_type or Connection + self.edge_type = edge_type or Edge @with_context def resolver(self, instance, args, context, info): @@ -38,7 +38,7 @@ class ConnectionField(Field): else: resolved = super(ConnectionField, self).resolver(instance, args, info) - if isinstance(resolved, connection_type): + if isinstance(resolved, self.connection_type): return resolved return self.from_list(connection_type, resolved, args, context, info) @@ -46,13 +46,10 @@ class ConnectionField(Field): return connection_type.from_list(resolved, args, context, info) def get_connection_type(self, node): - connection_type = self.connection_type or Connection - edge_type = self.get_edge_type(node) - return connection_type.for_node(node, edge_type=edge_type) + return self.connection_type.for_node(node) def get_edge_type(self, node): - edge_type = self.edge_type or Edge - return edge_type.for_node(node) + return self.edge_type.for_node(node) def get_type(self, schema): from graphene.relay.utils import is_node