Skip to content

Commit 7987576

Browse files
committed
extend_schema: preserve "description" and "extensions"
Replicates graphql/graphql-js@6b5c8af
1 parent 551c6c4 commit 7987576

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

src/graphql/utilities/extend_schema.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -259,10 +259,13 @@ def extend_schema_args(
259259
for directive in schema_kwargs["directives"]
260260
)
261261
+ tuple(self.build_directive(directive) for directive in directive_defs),
262-
description=schema_def.description.value
263-
if schema_def and schema_def.description
264-
else None,
265-
extensions={},
262+
description=(
263+
schema_def.description.value
264+
if schema_def and schema_def.description
265+
else None
266+
)
267+
or schema_kwargs["description"],
268+
extensions=schema_kwargs["extensions"],
266269
ast_node=schema_def or schema_kwargs["ast_node"],
267270
extension_ast_nodes=schema_kwargs["extension_ast_nodes"]
268271
+ tuple(schema_extensions),

tests/utilities/test_extend_schema.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,16 @@ def does_not_modify_built_in_types_and_directives():
135135

136136
assert extended_schema.directives == specified_directives
137137

138+
def preserves_original_schema_config():
139+
description = "A schema description"
140+
extensions = {"foo": "bar"}
141+
schema = GraphQLSchema(description=description, extensions=extensions)
142+
143+
extended_schema = extend_schema(schema, parse("scalar Bar"))
144+
145+
assert extended_schema.description == description
146+
assert extended_schema.extensions is extensions
147+
138148
def extends_objects_by_adding_new_fields():
139149
schema = build_schema(
140150
'''

0 commit comments

Comments
 (0)