Merge pull request #361 from Globegitter/node-simplifications

Make node arg options and default required to True for GlobalID.
This commit is contained in:
Syrus Akbary 2016-11-10 02:49:35 -08:00 committed by GitHub
commit a22c9276e5
2 changed files with 26 additions and 4 deletions

View File

@ -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

View 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