Fixed get type instance method.

This commit is contained in:
Markus Padourek 2016-10-21 11:22:52 +01:00
parent 733e1f70e0
commit e11d595f51
6 changed files with 16 additions and 13 deletions

View File

@ -68,7 +68,7 @@ def test_edge():
assert edge_fields['node'].type == MyObject
assert isinstance(edge_fields['other'], Field)
assert edge_fields['other'].type == String
assert edge_fields['other'].type.__class__ == String
def test_edge_with_bases():
@ -92,7 +92,7 @@ def test_edge_with_bases():
assert edge_fields['node'].type == MyObject
assert isinstance(edge_fields['other'], Field)
assert edge_fields['other'].type == String
assert edge_fields['other'].type.__class__ == String
def test_edge_on_node():

View File

@ -81,7 +81,7 @@ def test_mutation():
assert field.args['input'].type.of_type == SaySomething.Input
assert isinstance(fields['client_mutation_id'], Field)
assert fields['client_mutation_id'].name == 'clientMutationId'
assert fields['client_mutation_id'].type == String
assert fields['client_mutation_id'].type.__class__ == String
def test_mutation_input():
@ -90,9 +90,9 @@ def test_mutation_input():
fields = Input._meta.fields
assert list(fields.keys()) == ['what', 'client_mutation_id']
assert isinstance(fields['what'], InputField)
assert fields['what'].type == String
assert fields['what'].type.__class__ == String
assert isinstance(fields['client_mutation_id'], InputField)
assert fields['client_mutation_id'].type == String
assert fields['client_mutation_id'].type.__class__ == String
def test_subclassed_mutation():
@ -113,11 +113,11 @@ def test_subclassed_mutation_input():
fields = Input._meta.fields
assert list(fields.keys()) == ['shared', 'additional_field', 'client_mutation_id']
assert isinstance(fields['shared'], InputField)
assert fields['shared'].type == String
assert fields['shared'].type.__class__ == String
assert isinstance(fields['additional_field'], InputField)
assert fields['additional_field'].type == String
assert fields['additional_field'].type.__class__ == String
assert isinstance(fields['client_mutation_id'], InputField)
assert fields['client_mutation_id'].type == String
assert fields['client_mutation_id'].type.__class__ == String
# def test_node_query():

View File

@ -50,8 +50,8 @@ class Scalar(six.with_metaclass(ScalarTypeMeta, UnmountedType)):
parse_literal = None
@classmethod
def get_type(self):
return self
def get_type(cls):
return cls
# As per the GraphQL Spec, Integers are only treated as valid when a valid
# 32-bit signed integer, providing the broadest support across platforms.

View File

@ -83,7 +83,7 @@ def test_defines_a_query_only_schema():
assert issubclass(article_field_type, ObjectType)
title_field = article_field_type._meta.fields['title']
assert title_field.type == String
assert title_field.type.__class__ == String
author_field = article_field_type._meta.fields['author']
author_field_type = author_field.type

View File

@ -24,7 +24,7 @@ from .utils import get_field_as
def is_graphene_type(_type):
if isinstance(_type, (List, NonNull)):
if isinstance(_type, (List, NonNull, Scalar)):
return True
if inspect.isclass(_type) and issubclass(_type, (ObjectType, InputObjectType, Scalar, Interface, Union, Enum)):
return True
@ -68,6 +68,8 @@ class TypeMap(GraphQLTypeMap):
if is_graphene_type(_type):
assert _type.graphene_type == type
return map
if isinstance(type, Scalar):
return self.construct_scalar(map, type.__class__)
if issubclass(type, ObjectType):
return self.construct_objecttype(map, type)
if issubclass(type, InputObjectType):

View File

@ -63,7 +63,8 @@ class UnmountedType(OrderedType):
return (
self is other or (
isinstance(other, UnmountedType) and
self.get_type() == other.get_type() and
self.get_type()._meta == other.get_type()._meta and
# self.get_type()._meta.name == other.get_type()._meta.name and
self.args == other.args and
self.kwargs == other.kwargs
)