mirror of
https://github.com/graphql-python/graphene.git
synced 2025-02-02 20:54:16 +03:00
Added tests.
This commit is contained in:
parent
c01a9b1843
commit
09969355fa
|
@ -47,7 +47,7 @@ class GlobalID(Field):
|
|||
return node.to_global_id(parent_type_name, type_id) # root._meta.name
|
||||
|
||||
def get_resolver(self, parent_resolver):
|
||||
return partial(self.id_resolver, parent_resolver, self.node, parent_type_name=self._parent_type_name)
|
||||
return partial(self.id_resolver, parent_resolver, self.node, parent_type_name=self.parent_type_name)
|
||||
|
||||
|
||||
class NodeMeta(InterfaceMeta):
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
from ..node import Node, GlobalID
|
||||
from graphql_relay import to_global_id
|
||||
|
||||
from ...types import NonNull, ID
|
||||
from ..node import Node, GlobalID
|
||||
from ...types import NonNull, ID, ObjectType, String
|
||||
from ...types.definitions import GrapheneObjectType
|
||||
|
||||
|
||||
class CustomNode(Node):
|
||||
|
@ -9,6 +11,26 @@ class CustomNode(Node):
|
|||
name = 'Node'
|
||||
|
||||
|
||||
class User(ObjectType):
|
||||
|
||||
class Meta:
|
||||
interfaces = [CustomNode]
|
||||
name = String()
|
||||
|
||||
|
||||
class Info(object):
|
||||
|
||||
def __init__(self, parent_type):
|
||||
self.parent_type = GrapheneObjectType(
|
||||
graphene_type=parent_type,
|
||||
name=parent_type._meta.name,
|
||||
description=parent_type._meta.description,
|
||||
fields=None,
|
||||
is_type_of=parent_type.is_type_of,
|
||||
interfaces=None
|
||||
)
|
||||
|
||||
|
||||
def test_global_id_defaults_to_required_and_node():
|
||||
gid = GlobalID()
|
||||
assert isinstance(gid.type, NonNull)
|
||||
|
@ -20,3 +42,19 @@ def test_global_id_allows_overriding_of_node_and_required():
|
|||
gid = GlobalID(node=CustomNode, required=False)
|
||||
assert gid.type == ID
|
||||
assert gid.node == CustomNode
|
||||
|
||||
|
||||
def test_global_id_defaults_to_info_parent_type():
|
||||
my_id = '1'
|
||||
gid = GlobalID()
|
||||
id_resolver = gid.get_resolver(lambda *_: my_id)
|
||||
my_global_id = id_resolver(None, None, None, Info(User))
|
||||
assert my_global_id == to_global_id(User._meta.name, my_id)
|
||||
|
||||
|
||||
def test_global_id_allows_setting_customer_parent_type():
|
||||
my_id = '1'
|
||||
gid = GlobalID(parent_type=User)
|
||||
id_resolver = gid.get_resolver(lambda *_: my_id)
|
||||
my_global_id = id_resolver(None, None, None, None)
|
||||
assert my_global_id == to_global_id(User._meta.name, my_id)
|
||||
|
|
Loading…
Reference in New Issue
Block a user