From 2bd3e61c6b47d1dc0e5aa1cdaddd903930343c5e Mon Sep 17 00:00:00 2001 From: Jonathan Kim Date: Sat, 27 Jun 2020 18:19:42 +0100 Subject: [PATCH] Pass extra kwargs down the meta chain --- graphene/types/objecttype.py | 6 ++++-- graphene/types/tests/test_objecttype.py | 11 +++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/graphene/types/objecttype.py b/graphene/types/objecttype.py index c16f50b8..eafa3081 100644 --- a/graphene/types/objecttype.py +++ b/graphene/types/objecttype.py @@ -20,12 +20,14 @@ class ObjectTypeOptions(BaseOptions): class ObjectTypeMeta(BaseTypeMeta): - def __new__(cls, name, bases, namespace): + def __new__(cls, name, bases, namespace, **kwargs): # We create this type, to then overload it with the dataclass attrs class InterObjectType: pass - base_cls = super().__new__(cls, name, (InterObjectType,) + bases, namespace) + base_cls = super().__new__( + cls, name, (InterObjectType,) + bases, namespace, **kwargs + ) if base_cls._meta: fields = [ ( diff --git a/graphene/types/tests/test_objecttype.py b/graphene/types/tests/test_objecttype.py index 85a46867..bae11af4 100644 --- a/graphene/types/tests/test_objecttype.py +++ b/graphene/types/tests/test_objecttype.py @@ -295,3 +295,14 @@ def test_objecttype_meta_with_annotations(): schema = Schema(query=Query) assert schema is not None + + +def test_objecttype_meta_arguments(): + class MyInterface(Interface): + foo = String() + + class MyType(ObjectType, interfaces=[MyInterface]): + bar = String() + + assert MyType._meta.interfaces == [MyInterface] + assert list(MyType._meta.fields.keys()) == ["foo", "bar"]