Added interfaces field into a ObjectType. Fixed #168

This commit is contained in:
Syrus Akbary 2016-05-18 21:00:50 -07:00
parent c260bd4181
commit 10304eb8cf
2 changed files with 19 additions and 1 deletions

View File

@ -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()

View File

@ -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 = []