@@ -99,7 +99,10 @@ def __init__(self, type, *args, **kwargs):
99
99
def type (self ):
100
100
type = super (IterableConnectionField , self ).type
101
101
connection_type = type
102
- if is_node (type ):
102
+ if isinstance (type , NonNull ):
103
+ connection_type = type .of_type
104
+
105
+ if is_node (connection_type ):
103
106
raise Exception (
104
107
"ConnectionField's now need a explicit ConnectionType for Nodes.\n "
105
108
"Read more: https://github.com/graphql-python/graphene/blob/v2.0.0/UPGRADE-v2.0.md#node-connections"
@@ -108,7 +111,7 @@ def type(self):
108
111
assert issubclass (connection_type , Connection ), (
109
112
'{} type have to be a subclass of Connection. Received "{}".'
110
113
).format (self .__class__ .__name__ , connection_type )
111
- return connection_type
114
+ return type
112
115
113
116
@classmethod
114
117
def resolve_connection (cls , connection_type , args , resolved ):
@@ -133,6 +136,9 @@ def resolve_connection(cls, connection_type, args, resolved):
133
136
def connection_resolver (cls , resolver , connection_type , root , info , ** args ):
134
137
resolved = resolver (root , info , ** args )
135
138
139
+ if isinstance (connection_type , NonNull ):
140
+ connection_type = connection_type .of_type
141
+
136
142
on_resolve = partial (cls .resolve_connection , connection_type , args )
137
143
if is_thenable (resolved ):
138
144
return Promise .resolve (resolved ).then (on_resolve )
0 commit comments