From a2178dc22098a36e56d4cec021f984f4cae3649c Mon Sep 17 00:00:00 2001 From: Brian Chapman Date: Mon, 8 Jan 2018 09:16:02 -0800 Subject: [PATCH] Allow ObjectType to set Connection name --- graphene/relay/connection.py | 2 +- graphene/relay/tests/test_connection.py | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/graphene/relay/connection.py b/graphene/relay/connection.py index afe6ffb3..3e2e9ad9 100644 --- a/graphene/relay/connection.py +++ b/graphene/relay/connection.py @@ -73,7 +73,7 @@ class Connection(ObjectType): edge = type(edge_name, edge_bases, {}) cls.Edge = edge - _meta.name = name + options['name'] = name _meta.node = node _meta.fields = OrderedDict([ ('page_info', Field(PageInfo, name='pageInfo', required=True)), diff --git a/graphene/relay/tests/test_connection.py b/graphene/relay/tests/test_connection.py index b6a26df3..36978882 100644 --- a/graphene/relay/tests/test_connection.py +++ b/graphene/relay/tests/test_connection.py @@ -52,6 +52,21 @@ def test_connection_inherit_abstracttype(): assert list(fields.keys()) == ['page_info', 'edges', 'extra'] +def test_connection_name(): + custom_name = "MyObjectCustomNameConnection" + + class BaseConnection(object): + extra = String() + + class MyObjectConnection(BaseConnection, Connection): + + class Meta: + node = MyObject + name = custom_name + + assert MyObjectConnection._meta.name == custom_name + + def test_edge(): class MyObjectConnection(Connection): @@ -122,9 +137,10 @@ def test_connectionfield_node_deprecated(): field = ConnectionField(MyObject) with pytest.raises(Exception) as exc_info: field.type - + assert "ConnectionField's now need a explicit ConnectionType for Nodes." in str(exc_info.value) + def test_connectionfield_custom_args(): class MyObjectConnection(Connection):