From f3ca2cc932b086a36fe670eaa4480e8b99d4001f Mon Sep 17 00:00:00 2001 From: Cameron Hurst Date: Sun, 21 Apr 2019 09:59:33 -0400 Subject: [PATCH] Added test to ensure fields can be defined on meta --- graphene/relay/tests/test_connection.py | 30 +++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/graphene/relay/tests/test_connection.py b/graphene/relay/tests/test_connection.py index 96c58b52..aefd0d85 100644 --- a/graphene/relay/tests/test_connection.py +++ b/graphene/relay/tests/test_connection.py @@ -1,5 +1,8 @@ +from collections import OrderedDict + import pytest +import graphene from ...types import Argument, Field, Int, List, NonNull, ObjectType, Schema, String from ..connection import Connection, ConnectionField, PageInfo, ConnectionOptions from ..node import Node @@ -74,6 +77,33 @@ def test_connection_meta_assignment(): assert id(MyObjectConnection._meta) == id(meta) +def test_connection_meta_can_have_fields(): + meta = ConnectionOptions(Connection) + meta.fields = OrderedDict([ + ("test", graphene.String()) + ]) + + class BaseConnection(object): + extra = String() + + class InheritedConnection(Connection): + class Meta: + abstract = True + + @classmethod + def __init_subclass_with_meta__(cls, node=None, name=None, **options): + return super(InheritedConnection, cls).__init_subclass_with_meta__( + _meta=meta, node=node, name=name, **options + ) + + class MyObjectConnection(BaseConnection, InheritedConnection): + class Meta: + node = MyObject + + fields = MyObjectConnection._meta.fields + assert list(fields.keys()) == ["test", "page_info", "edges", "extra"] + + def test_connection_name(): custom_name = "MyObjectCustomNameConnection"