diff --git a/graphene/contrib/django/tests/test_types.py b/graphene/contrib/django/tests/test_types.py index bb996193e..30a0f4425 100644 --- a/graphene/contrib/django/tests/test_types.py +++ b/graphene/contrib/django/tests/test_types.py @@ -1,7 +1,7 @@ from graphql.type import GraphQLObjectType from mock import patch -from graphene import Schema +from graphene import Schema, Interface from graphene.contrib.django.types import DjangoNode, DjangoObjectType from graphene.core.fields import Field from graphene.core.types.scalars import Int @@ -83,3 +83,20 @@ def test_object_type(): def test_node_notinterface(): assert Human._meta.interface is False assert DjangoNode in Human._meta.interfaces + + +def test_django_objecttype_could_extend_interface(): + schema = Schema() + + @schema.register + class Customer(Interface): + id = Int() + + @schema.register + class UserType(DjangoObjectType): + class Meta: + model = Reporter + interfaces = [Customer] + + object_type = schema.T(UserType) + assert schema.T(Customer) in object_type.get_interfaces() diff --git a/graphene/core/classtypes/objecttype.py b/graphene/core/classtypes/objecttype.py index ae7c94fb6..2bcb5e68e 100644 --- a/graphene/core/classtypes/objecttype.py +++ b/graphene/core/classtypes/objecttype.py @@ -20,6 +20,7 @@ class ObjectTypeOptions(FieldsOptions): def __init__(self, *args, **kwargs): super(ObjectTypeOptions, self).__init__(*args, **kwargs) self.interface = False + self.valid_attrs += ['interfaces'] self.interfaces = []