added returns_promise flag to schema.execute

This commit is contained in:
Alec Aivazis 2016-06-25 13:11:32 -07:00
parent b5b66326a7
commit 2d7b788568
2 changed files with 17 additions and 2 deletions

View File

@ -118,7 +118,7 @@ class Schema(object):
return self._types_names return self._types_names
def execute(self, request_string='', root_value=None, variable_values=None, def execute(self, request_string='', root_value=None, variable_values=None,
context_value=None, operation_name=None, executor=None): context_value=None, operation_name=None, executor=None, return_promise=False):
return graphql( return graphql(
schema=self.schema, schema=self.schema,
request_string=request_string, request_string=request_string,
@ -126,7 +126,8 @@ class Schema(object):
context_value=context_value, context_value=context_value,
variable_values=variable_values, variable_values=variable_values,
operation_name=operation_name, operation_name=operation_name,
executor=executor or self._executor executor=executor or self._executor,
return_promise=return_promise
) )
def introspect(self): def introspect(self):

View File

@ -1,5 +1,6 @@
from graphql import graphql from graphql import graphql
from py.test import raises from py.test import raises
from promise import is_thenable
from graphene import Interface, List, ObjectType, Schema, String from graphene import Interface, List, ObjectType, Schema, String
from graphene.core.fields import Field from graphene.core.fields import Field
@ -88,6 +89,19 @@ def test_query_schema_execute():
assert not result.errors assert not result.errors
assert result.data == expected assert result.data == expected
def test_schema_returns_promise():
object()
query = '''
{
name
pet {
type
}
}
'''
result = schema.execute(query, root_value=object(), return_promise=True)
assert is_thenable(result)
def test_schema_get_type_map(): def test_schema_get_type_map():
assert_equal_lists( assert_equal_lists(