From 2f6fb89f23691bb1c06073b59433c421920e4c04 Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Fri, 4 Dec 2015 19:50:30 -0800 Subject: [PATCH] Fixed List, NonNull accessors as functions instead of properties --- graphene/core/classtypes/base.py | 5 +++-- graphene/core/classtypes/tests/test_base.py | 19 +++++++++++++++---- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/graphene/core/classtypes/base.py b/graphene/core/classtypes/base.py index 31a2c8d2..4f2de009 100644 --- a/graphene/core/classtypes/base.py +++ b/graphene/core/classtypes/base.py @@ -1,5 +1,6 @@ import copy import inspect +from functools import partial from collections import OrderedDict import six @@ -48,8 +49,8 @@ class ClassTypeMeta(type): if not cls._meta.abstract: from ..types import List, NonNull - setattr(cls, 'NonNull', NonNull(cls)) - setattr(cls, 'List', List(cls)) + setattr(cls, 'NonNull', partial(NonNull, cls)) + setattr(cls, 'List', partial(List, cls)) return cls diff --git a/graphene/core/classtypes/tests/test_base.py b/graphene/core/classtypes/tests/test_base.py index 5017f94d..4666fdc2 100644 --- a/graphene/core/classtypes/tests/test_base.py +++ b/graphene/core/classtypes/tests/test_base.py @@ -23,15 +23,26 @@ def test_classtype_advanced(): def test_classtype_definition_list(): class Character(ClassType): '''Character description''' - assert isinstance(Character.List, List) - assert Character.List.of_type == Character + assert isinstance(Character.List(), List) + assert Character.List().of_type == Character def test_classtype_definition_nonnull(): class Character(ClassType): '''Character description''' - assert isinstance(Character.NonNull, NonNull) - assert Character.NonNull.of_type == Character + assert isinstance(Character.NonNull(), NonNull) + assert Character.NonNull().of_type == Character + + +def test_fieldsclasstype_definition_order(): + class Character(ClassType): + '''Character description''' + + class Query(FieldsClassType): + name = String() + char = Character.NonNull() + + assert list(Query._meta.fields_map.keys()) == ['name', 'char'] def test_fieldsclasstype():