From 2709007f8339c2851c08665c87be4cf906264a00 Mon Sep 17 00:00:00 2001 From: Cameron Hurst Date: Thu, 28 Feb 2019 10:05:34 -0500 Subject: [PATCH] added tests for meta assignment cleaned up _meta assignment slightly --- graphene/relay/connection.py | 3 +-- graphene/relay/tests/test_connection.py | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/graphene/relay/connection.py b/graphene/relay/connection.py index 6d0cdb12..d44e5f29 100644 --- a/graphene/relay/connection.py +++ b/graphene/relay/connection.py @@ -51,8 +51,7 @@ class Connection(ObjectType): @classmethod def __init_subclass_with_meta__(cls, node=None, name=None, _meta=None, **options): - if not _meta: - _meta = ConnectionOptions(cls) + _meta = _meta or ConnectionOptions(cls) assert node, "You have to provide a node in {}.Meta".format(cls.__name__) assert isinstance(node, NonNull) or issubclass( node, (Scalar, Enum, ObjectType, Interface, Union, NonNull) diff --git a/graphene/relay/tests/test_connection.py b/graphene/relay/tests/test_connection.py index 6686f964..02f7cd07 100644 --- a/graphene/relay/tests/test_connection.py +++ b/graphene/relay/tests/test_connection.py @@ -1,7 +1,7 @@ import pytest from ...types import Argument, Field, Int, List, NonNull, ObjectType, Schema, String -from ..connection import Connection, ConnectionField, PageInfo +from ..connection import Connection, ConnectionField, PageInfo, ConnectionOptions from ..node import Node @@ -51,6 +51,25 @@ def test_connection_inherit_abstracttype(): assert list(fields.keys()) == ["page_info", "edges", "extra"] +def test_connection_meta_assignment(): + meta = ConnectionOptions(Connection) + + class BaseConnection(object): + extra = String() + + class MyObjectConnection(BaseConnection, Connection): + class Meta: + node = MyObject + + @classmethod + def __init_subclass_with_meta__(cls, node=None, name=None, **options): + return super(MyObjectConnection, cls).__init_subclass_with_meta__( + _meta=meta, node=node, name=name, **options + ) + + assert id(MyObjectConnection._meta) == id(meta) + + def test_connection_name(): custom_name = "MyObjectCustomNameConnection"