added tests for meta assignment

cleaned up _meta assignment slightly
This commit is contained in:
Cameron Hurst 2019-02-28 10:05:34 -05:00
parent f4d5603ad3
commit 2709007f83
No known key found for this signature in database
GPG Key ID: 21D8849D8BAFABCA
2 changed files with 21 additions and 3 deletions

View File

@ -51,8 +51,7 @@ class Connection(ObjectType):
@classmethod @classmethod
def __init_subclass_with_meta__(cls, node=None, name=None, _meta=None, **options): def __init_subclass_with_meta__(cls, node=None, name=None, _meta=None, **options):
if not _meta: _meta = _meta or ConnectionOptions(cls)
_meta = ConnectionOptions(cls)
assert node, "You have to provide a node in {}.Meta".format(cls.__name__) assert node, "You have to provide a node in {}.Meta".format(cls.__name__)
assert isinstance(node, NonNull) or issubclass( assert isinstance(node, NonNull) or issubclass(
node, (Scalar, Enum, ObjectType, Interface, Union, NonNull) node, (Scalar, Enum, ObjectType, Interface, Union, NonNull)

View File

@ -1,7 +1,7 @@
import pytest import pytest
from ...types import Argument, Field, Int, List, NonNull, ObjectType, Schema, String 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 from ..node import Node
@ -51,6 +51,25 @@ def test_connection_inherit_abstracttype():
assert list(fields.keys()) == ["page_info", "edges", "extra"] 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(): def test_connection_name():
custom_name = "MyObjectCustomNameConnection" custom_name = "MyObjectCustomNameConnection"