1
1
from collections import OrderedDict
2
2
3
3
from graphql_relay .utils import base64
4
+ from promise import Promise
4
5
5
6
from ...types import ObjectType , Schema , String
6
7
from ..connection import ConnectionField , PageInfo
@@ -20,12 +21,16 @@ class Meta:
20
21
class Query (ObjectType ):
21
22
letters = ConnectionField (Letter )
22
23
connection_letters = ConnectionField (Letter )
24
+ promise_letters = ConnectionField (Letter )
23
25
24
26
node = Node .Field ()
25
27
26
28
def resolve_letters (self , args , context , info ):
27
29
return list (letters .values ())
28
30
31
+ def resolve_promise_letters (self , args , context , info ):
32
+ return Promise .resolve (list (letters .values ()))
33
+
29
34
def resolve_connection_letters (self , args , context , info ):
30
35
return Letter .Connection (
31
36
page_info = PageInfo (
@@ -228,3 +233,38 @@ def test_connection_type_nodes():
228
233
}
229
234
}
230
235
}
236
+
237
+
238
+ def test_connection_promise ():
239
+ result = schema .execute ('''
240
+ {
241
+ promiseLetters(first:1) {
242
+ edges {
243
+ node {
244
+ id
245
+ letter
246
+ }
247
+ }
248
+ pageInfo {
249
+ hasPreviousPage
250
+ hasNextPage
251
+ }
252
+ }
253
+ }
254
+ ''' )
255
+
256
+ assert not result .errors
257
+ assert result .data == {
258
+ 'promiseLetters' : {
259
+ 'edges' : [{
260
+ 'node' : {
261
+ 'id' : 'TGV0dGVyOjA=' ,
262
+ 'letter' : 'A' ,
263
+ },
264
+ }],
265
+ 'pageInfo' : {
266
+ 'hasPreviousPage' : False ,
267
+ 'hasNextPage' : True ,
268
+ }
269
+ }
270
+ }
0 commit comments