mirror of
https://github.com/graphql-python/graphene.git
synced 2025-02-02 12:44:15 +03:00
Add copy function for GrapheneGraphQLType (#1463)
This commit is contained in:
parent
ee1ff975d7
commit
6969023491
|
@ -20,6 +20,11 @@ class GrapheneGraphQLType:
|
|||
self.graphene_type = kwargs.pop("graphene_type")
|
||||
super(GrapheneGraphQLType, self).__init__(*args, **kwargs)
|
||||
|
||||
def __copy__(self):
|
||||
result = GrapheneGraphQLType(graphene_type=self.graphene_type)
|
||||
result.__dict__.update(self.__dict__)
|
||||
return result
|
||||
|
||||
|
||||
class GrapheneInterfaceType(GrapheneGraphQLType, GraphQLInterfaceType):
|
||||
pass
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
import copy
|
||||
|
||||
from ..argument import Argument
|
||||
from ..definitions import GrapheneGraphQLType
|
||||
from ..enum import Enum
|
||||
from ..field import Field
|
||||
from ..inputfield import InputField
|
||||
|
@ -312,3 +315,16 @@ def test_does_not_mutate_passed_field_definitions():
|
|||
pass
|
||||
|
||||
assert TestInputObject1._meta.fields == TestInputObject2._meta.fields
|
||||
|
||||
|
||||
def test_graphene_graphql_type_can_be_copied():
|
||||
class Query(ObjectType):
|
||||
field = String()
|
||||
|
||||
def resolve_field(self, info):
|
||||
return ""
|
||||
|
||||
schema = Schema(query=Query)
|
||||
query_type_copy = copy.copy(schema.graphql_schema.query_type)
|
||||
assert query_type_copy.__dict__ == schema.graphql_schema.query_type.__dict__
|
||||
assert isinstance(schema.graphql_schema.query_type, GrapheneGraphQLType)
|
||||
|
|
Loading…
Reference in New Issue
Block a user