From afa44e8a5f3d761a932221b15dc7103dcbdb54db Mon Sep 17 00:00:00 2001 From: Thomas Leonard <64223923+tcleonard@users.noreply.github.com> Date: Thu, 22 Apr 2021 22:27:14 -0500 Subject: [PATCH] Propagate arguments of relay.NodeField to Field (#1036) (#1307) * Propagate name, deprecation_reason arguments of relay.NodeField to Field * Allow custom description in Node.Field and move ID description to ID argument * Add test for Node.Field with custom name * Add tests for description, deprecation_reason arguments of NodeField * Pass all kwargs from NodeField to Field Co-authored-by: Theodore Diamantidis --- graphene/relay/node.py | 6 +++--- graphene/relay/tests/test_node.py | 11 +++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/graphene/relay/node.py b/graphene/relay/node.py index d9c4c0f6..4b324a93 100644 --- a/graphene/relay/node.py +++ b/graphene/relay/node.py @@ -48,7 +48,7 @@ class GlobalID(Field): class NodeField(Field): - def __init__(self, node, type=False, deprecation_reason=None, name=None, **kwargs): + def __init__(self, node, type=False, **kwargs): assert issubclass(node, Node), "NodeField can only operate in Nodes" self.node_type = node self.field_type = type @@ -57,8 +57,8 @@ class NodeField(Field): # If we don's specify a type, the field type will be the node # interface type or node, - description="The ID of the object", - id=ID(required=True), + id=ID(required=True, description="The ID of the object"), + **kwargs ) def get_resolver(self, parent_resolver): diff --git a/graphene/relay/tests/test_node.py b/graphene/relay/tests/test_node.py index fbce1d54..a0f40608 100644 --- a/graphene/relay/tests/test_node.py +++ b/graphene/relay/tests/test_node.py @@ -110,6 +110,17 @@ def test_node_field_custom(): assert node_field.node_type == Node +def test_node_field_args(): + field_args = { + "name": "my_custom_name", + "description": "my_custom_description", + "deprecation_reason": "my_custom_deprecation_reason", + } + node_field = Node.Field(**field_args) + for field_arg, value in field_args.items(): + assert getattr(node_field, field_arg) == value + + def test_node_field_only_type(): executed = schema.execute( '{ onlyNode(id:"%s") { __typename, name } } ' % Node.to_global_id("MyNode", 1)