Remove unused code. Add more tests

This commit is contained in:
Syrus Akbary 2015-11-13 18:34:02 -08:00
parent 9548d6932c
commit f4a8d53409
8 changed files with 26 additions and 43 deletions

View File

@ -3,7 +3,7 @@ from collections import OrderedDict
from graphene.utils import cached_property
DEFAULT_NAMES = ('description', 'name', 'is_interface', 'is_mutation',
'type_name', 'interfaces', 'proxy')
'type_name', 'interfaces')
class Options(object):
@ -13,7 +13,6 @@ class Options(object):
self.local_fields = []
self.is_interface = False
self.is_mutation = False
self.proxy = False
self.interfaces = []
self.parents = []
self.valid_attrs = DEFAULT_NAMES
@ -55,8 +54,6 @@ class Options(object):
"'class Meta' got invalid attribute(s): %s" %
','.join(
meta_attrs.keys()))
else:
self.proxy = False
del self.meta

View File

@ -1,10 +0,0 @@
from graphql.core.type.definition import GraphQLScalarType
def skip(value):
return None
GraphQLSkipField = GraphQLScalarType(name='SkipField',
serialize=skip,
parse_value=skip,
parse_literal=skip)

View File

@ -1,9 +1,10 @@
from collections import OrderedDict
from functools import wraps
from itertools import chain
from graphql.core.type import GraphQLArgument
from ...utils import to_camel_case
from ...utils import to_camel_case, ProxySnakeDict
from .base import ArgumentType, BaseType, OrderedType
@ -69,3 +70,11 @@ def to_arguments(*args, **kwargs):
arguments[argument.name] = argument
return sorted(arguments.values())
def snake_case_args(resolver):
@wraps(resolver)
def wrapped_resolver(instance, args, info):
return resolver(instance, ProxySnakeDict(args), info)
return wrapped_resolver

View File

@ -1,25 +1,16 @@
from collections import OrderedDict
from functools import wraps
import six
from graphql.core.type import GraphQLField, GraphQLInputObjectField
from ...utils import ProxySnakeDict, to_camel_case
from ...utils import to_camel_case
from ..types import BaseObjectType, InputObjectType
from .argument import ArgumentsGroup
from .argument import ArgumentsGroup, snake_case_args
from .base import LazyType, MountType, OrderedType
from .definitions import NonNull
def make_args_snake_case(resolver):
@wraps(resolver)
def wrapped_resolver(instance, args, info):
return resolver(instance, ProxySnakeDict(args), info)
return wrapped_resolver
class Empty(object):
pass
@ -91,7 +82,7 @@ class Field(OrderedType):
arguments = type_objecttype.get_arguments()
resolver = getattr(type_objecttype, 'mutate')
resolver = make_args_snake_case(resolver)
resolver = snake_case_args(resolver)
assert type, 'Internal type for field %s is None' % str(self)
return GraphQLField(type, args=schema.T(arguments), resolver=resolver,
description=description,)

View File

@ -168,20 +168,9 @@ class BaseObjectType(BaseType):
signals.post_init.send(self.__class__, instance=self)
@classmethod
def fields_as_arguments(cls, schema):
return OrderedDict(
[(f.attname, GraphQLArgument(f.internal_type(schema)))
for f in cls._meta.fields])
@classmethod
def resolve_objecttype(cls, schema, instance, *args):
return instance.__class__
@classmethod
def resolve_type(cls, schema, instance, *args):
objecttype = cls.resolve_objecttype(schema, instance, *args)
return schema.T(objecttype)
return schema.T(instance.__class__)
@classmethod
def internal_type(cls, schema):

View File

@ -4,7 +4,7 @@ from graphene.core.schema import Schema
from graphene.core.types import ObjectType
from graphql.core.type import GraphQLArgument
from ..argument import Argument, to_arguments
from ..argument import Argument, to_arguments, snake_case_args
from ..scalars import String
@ -45,3 +45,9 @@ def test_to_arguments_wrong_type():
p=3
)
assert 'Unknown argument p=3' == str(excinfo.value)
def test_snake_case_args():
resolver = lambda instance, args, info: args['my_arg']['inner_arg']
r = snake_case_args(resolver)
assert r(None, {'myArg': {'innerArg': 3}}, None) == 3

View File

@ -1,6 +1,7 @@
from collections import Iterable
from graphene.core.fields import Field
from graphene.core.types.definitions import NonNull
from graphene.core.types.scalars import ID, Int, String
from graphql_relay.connection.arrayconnection import connection_from_list
from graphql_relay.node.node import from_global_id
@ -67,6 +68,7 @@ class ConnectionField(Field):
class NodeField(Field):
'''Fetches an object given its ID'''
def __init__(self, object_type=None, *args, **kwargs):
from graphene.relay.types import Node
@ -96,8 +98,7 @@ class GlobalIDField(Field):
'''The ID of an object'''
def __init__(self, *args, **kwargs):
super(GlobalIDField, self).__init__(ID(), *args, **kwargs)
self.required = True
super(GlobalIDField, self).__init__(NonNull(ID()), *args, **kwargs)
def contribute_to_class(self, cls, name):
from graphene.relay.utils import is_node, is_node_type

View File

@ -99,7 +99,7 @@ class BaseNode(object):
class Node(BaseNode, Interface):
'''An object with an ID'''
id = GlobalIDField(required=True)
id = GlobalIDField()
class MutationInputType(InputObjectType):