Add tests

This commit is contained in:
Abdulhaq Emhemmed 2017-07-24 19:33:41 +02:00
parent bc7d96b2be
commit c5dd913f53

View File

@ -1,5 +1,6 @@
from django.db import models from django.db import models
from graphene import Field
from graphene import Field, Schema, String, Mutation, ObjectType, AbstractType
from graphene.types.inputobjecttype import InputObjectType from graphene.types.inputobjecttype import InputObjectType
from py.test import raises from py.test import raises
from rest_framework import serializers from rest_framework import serializers
@ -68,3 +69,47 @@ def test_nested_model():
model_input_type = model_input._type.of_type model_input_type = model_input._type.of_type
assert issubclass(model_input_type, InputObjectType) assert issubclass(model_input_type, InputObjectType)
assert 'cool_name' in model_input_type._meta.fields assert 'cool_name' in model_input_type._meta.fields
def test_custom_serializer(capfd):
class MyBasicSerializer(serializers.Serializer):
whatever = serializers.CharField(required=False)
def create(self, data):
return {'user': self.context['request']['user']}
class MyBasicGrapheneType(ObjectType):
text = String()
class MyAwesomeMutation(SerializerMutation):
class Meta:
serializer_class = MyBasicSerializer
user = String()
@classmethod
def get_serializer(cls, instance, args, request, info):
input = args.get('input')
return cls._meta.serializer_class(data=dict(input),
context={'request': request})
class MyAbstractMutation(AbstractType, ObjectType):
myAwesomeMutation = MyAwesomeMutation.Field()
schema = Schema(query=MyBasicGrapheneType, mutation=MyAbstractMutation)
mutation = '''
mutation MutationTest($input: MyBasicSerializerInput!) {
myAwesomeMutation(input: $input) {
user
}
}
'''
result = schema.execute(mutation, variable_values={'input': {}},
context_value={'user': 1})
assert result.data['myAwesomeMutation']['user'] == '1'