Skip to content

Commit 9f3f07c

Browse files
committed
chore: check jinja_env type during runtime
1 parent 7d33927 commit 9f3f07c

File tree

6 files changed

+34
-0
lines changed

6 files changed

+34
-0
lines changed

graphql_server/__init__.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,3 +335,17 @@ def format_execution_result(
335335
response = {"data": execution_result.data}
336336

337337
return FormattedResult(response, status_code)
338+
339+
340+
def _check_jinja(jinja_env: Any) -> None:
341+
try:
342+
from jinja2 import Environment
343+
except ImportError:
344+
raise RuntimeError(
345+
"Attempt to set 'jinja_env' to a value other than None while Jinja2 is not installed.\n"
346+
"Please install Jinja2 to render GraphiQL with Jinja2.\n"
347+
"Otherwise set 'jinja_env' to None to use the simple regex renderer."
348+
)
349+
350+
if not isinstance(jinja_env, Environment):
351+
raise TypeError("'jinja_env' has to be of type jinja2.Environment.")

graphql_server/aiohttp/graphqlview.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from graphql_server import (
1313
GraphQLParams,
1414
HttpQueryError,
15+
_check_jinja,
1516
encode_execution_results,
1617
format_error_default,
1718
json_encode,
@@ -66,6 +67,9 @@ def __init__(self, **kwargs):
6667
if not isinstance(self.schema, GraphQLSchema):
6768
raise TypeError("A Schema is required to be provided to GraphQLView.")
6869

70+
if self.jinja_env is not None:
71+
_check_jinja(self.jinja_env)
72+
6973
def get_root_value(self):
7074
return self.root_value
7175

graphql_server/flask/graphqlview.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from graphql_server import (
1313
GraphQLParams,
1414
HttpQueryError,
15+
_check_jinja,
1516
encode_execution_results,
1617
format_error_default,
1718
json_encode,
@@ -63,6 +64,9 @@ def __init__(self, **kwargs):
6364
if not isinstance(self.schema, GraphQLSchema):
6465
raise TypeError("A Schema is required to be provided to GraphQLView.")
6566

67+
if self.jinja_env is not None:
68+
_check_jinja(self.jinja_env)
69+
6670
def get_root_value(self):
6771
return self.root_value
6872

graphql_server/quart/graphqlview.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from graphql_server import (
1515
GraphQLParams,
1616
HttpQueryError,
17+
_check_jinja,
1718
encode_execution_results,
1819
format_error_default,
1920
json_encode,
@@ -67,6 +68,9 @@ def __init__(self, **kwargs):
6768
if not isinstance(self.schema, GraphQLSchema):
6869
raise TypeError("A Schema is required to be provided to GraphQLView.")
6970

71+
if self.jinja_env is not None:
72+
_check_jinja(self.jinja_env)
73+
7074
def get_root_value(self):
7175
return self.root_value
7276

graphql_server/sanic/graphqlview.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from graphql_server import (
1515
GraphQLParams,
1616
HttpQueryError,
17+
_check_jinja,
1718
encode_execution_results,
1819
format_error_default,
1920
json_encode,
@@ -68,6 +69,9 @@ def __init__(self, **kwargs):
6869
if not isinstance(self.schema, GraphQLSchema):
6970
raise TypeError("A Schema is required to be provided to GraphQLView.")
7071

72+
if self.jinja_env is not None:
73+
_check_jinja(self.jinja_env)
74+
7175
def get_root_value(self):
7276
return self.root_value
7377

graphql_server/webob/graphqlview.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from graphql_server import (
1212
GraphQLParams,
1313
HttpQueryError,
14+
_check_jinja,
1415
encode_execution_results,
1516
format_error_default,
1617
json_encode,
@@ -62,6 +63,9 @@ def __init__(self, **kwargs):
6263
if not isinstance(self.schema, GraphQLSchema):
6364
raise TypeError("A Schema is required to be provided to GraphQLView.")
6465

66+
if self.jinja_env is not None:
67+
_check_jinja(self.jinja_env)
68+
6569
def get_root_value(self):
6670
return self.root_value
6771

0 commit comments

Comments
 (0)