Added test to ensure fields can be defined on meta

This commit is contained in:
Cameron Hurst 2019-04-21 09:59:33 -04:00
parent cffa3b3b2d
commit f3ca2cc932
No known key found for this signature in database
GPG Key ID: 21D8849D8BAFABCA

View File

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