diff --git a/graphene/relay/tests/test_query.py b/graphene/relay/tests/test_query.py index 1603709e..c598ab9e 100644 --- a/graphene/relay/tests/test_query.py +++ b/graphene/relay/tests/test_query.py @@ -51,6 +51,9 @@ class Query(graphene.ObjectType): connection_type_nodes = relay.ConnectionField( MyNode, connection_type=MyConnection) + + promise_connection_type = relay.ConnectionField( + MyNode, connection_type=MyConnection) all_my_objects = relay.ConnectionField( MyObject, connection_type=MyConnection) @@ -75,6 +78,9 @@ class Query(graphene.ObjectType): def resolve_all_my_objects(self, args, info): return [MyObject(name='my_object')] + + def resolve_promise_connection_type(self, args, info): + return Promise.resolve('async name').then(lambda name: [MyNode(id='1', name=name)]) schema.query = Query @@ -228,6 +234,32 @@ def test_connectionfield_resolve_returning_objects(): assert result.data == expected +def test_connectionfield_resolve_returning_promise(): + query = ''' + query RebelsShipsQuery { + promiseConnectionType { + edges { + node { + name + } + } + } + } + ''' + expected = { + 'promiseConnectionType': { + 'edges': [{ + 'node': { + 'name': 'async name' + } + }] + } + } + result = schema.execute(query) + assert not result.errors + assert result.data == expected + + @pytest.mark.parametrize('specialness,value', [(True, '!!!'), (False, '???')]) def test_get_node_info(specialness, value): query = '''