mirror of
https://github.com/graphql-python/graphene.git
synced 2025-02-02 20:54:16 +03:00
Merge pull request #361 from Globegitter/node-simplifications
Make node arg options and default required to True for GlobalID.
This commit is contained in:
commit
a22c9276e5
|
@ -35,9 +35,9 @@ def get_default_connection(cls):
|
|||
|
||||
class GlobalID(Field):
|
||||
|
||||
def __init__(self, node, *args, **kwargs):
|
||||
super(GlobalID, self).__init__(ID, *args, **kwargs)
|
||||
self.node = node
|
||||
def __init__(self, node=None, required=True, *args, **kwargs):
|
||||
super(GlobalID, self).__init__(ID, required=required, *args, **kwargs)
|
||||
self.node = node or Node
|
||||
|
||||
@staticmethod
|
||||
def id_resolver(parent_resolver, node, root, args, context, info):
|
||||
|
@ -52,7 +52,7 @@ class NodeMeta(InterfaceMeta):
|
|||
|
||||
def __new__(cls, name, bases, attrs):
|
||||
cls = InterfaceMeta.__new__(cls, name, bases, attrs)
|
||||
cls._meta.fields['id'] = GlobalID(cls, required=True, description='The ID of the object.')
|
||||
cls._meta.fields['id'] = GlobalID(cls, description='The ID of the object.')
|
||||
return cls
|
||||
|
||||
|
||||
|
|
22
graphene/relay/tests/test_global_id.py
Normal file
22
graphene/relay/tests/test_global_id.py
Normal file
|
@ -0,0 +1,22 @@
|
|||
from ..node import Node, GlobalID
|
||||
|
||||
from ...types import NonNull, ID
|
||||
|
||||
|
||||
class CustomNode(Node):
|
||||
|
||||
class Meta:
|
||||
name = 'Node'
|
||||
|
||||
|
||||
def test_global_id_defaults_to_required_and_node():
|
||||
gid = GlobalID()
|
||||
assert isinstance(gid.type, NonNull)
|
||||
assert gid.type.of_type == ID
|
||||
assert gid.node == Node
|
||||
|
||||
|
||||
def test_global_id_allows_overriding_of_node_and_required():
|
||||
gid = GlobalID(node=CustomNode, required=False)
|
||||
assert gid.type == ID
|
||||
assert gid.node == CustomNode
|
Loading…
Reference in New Issue
Block a user