From 2d7b78856883059e8a720ef951bf8e657b59bcc9 Mon Sep 17 00:00:00 2001 From: Alec Aivazis Date: Sat, 25 Jun 2016 13:11:32 -0700 Subject: [PATCH 1/3] added returns_promise flag to schema.execute --- graphene/core/schema.py | 5 +++-- graphene/core/tests/test_schema.py | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/graphene/core/schema.py b/graphene/core/schema.py index e284ab1f..f0b72117 100644 --- a/graphene/core/schema.py +++ b/graphene/core/schema.py @@ -118,7 +118,7 @@ class Schema(object): return self._types_names 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( schema=self.schema, request_string=request_string, @@ -126,7 +126,8 @@ class Schema(object): context_value=context_value, variable_values=variable_values, operation_name=operation_name, - executor=executor or self._executor + executor=executor or self._executor, + return_promise=return_promise ) def introspect(self): diff --git a/graphene/core/tests/test_schema.py b/graphene/core/tests/test_schema.py index b55b295c..3280ce97 100644 --- a/graphene/core/tests/test_schema.py +++ b/graphene/core/tests/test_schema.py @@ -1,5 +1,6 @@ from graphql import graphql from py.test import raises +from promise import is_thenable from graphene import Interface, List, ObjectType, Schema, String from graphene.core.fields import Field @@ -88,6 +89,19 @@ def test_query_schema_execute(): assert not result.errors 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(): assert_equal_lists( From 693f84ba388867bc42712e9811394959c76813ca Mon Sep 17 00:00:00 2001 From: Alec Aivazis Date: Sat, 25 Jun 2016 13:14:37 -0700 Subject: [PATCH 2/3] bumped version number --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index b5862d8f..27246df5 100644 --- a/setup.py +++ b/setup.py @@ -24,7 +24,7 @@ class PyTest(TestCommand): setup( name='graphene', - version='0.10.2', + version='0.10.3', description='GraphQL Framework for Python', long_description=open('README.rst').read(), From 7200ec6dfa208e39b511b73153313a891792cdec Mon Sep 17 00:00:00 2001 From: Alec Aivazis Date: Sat, 25 Jun 2016 13:19:09 -0700 Subject: [PATCH 3/3] added additional line in test file --- graphene/core/tests/test_schema.py | 1 + 1 file changed, 1 insertion(+) diff --git a/graphene/core/tests/test_schema.py b/graphene/core/tests/test_schema.py index 3280ce97..b7a4d287 100644 --- a/graphene/core/tests/test_schema.py +++ b/graphene/core/tests/test_schema.py @@ -89,6 +89,7 @@ def test_query_schema_execute(): assert not result.errors assert result.data == expected + def test_schema_returns_promise(): object() query = '''