diff --git a/django_test_settings.py b/django_test_settings.py index 2e08272..9279a73 100644 --- a/django_test_settings.py +++ b/django_test_settings.py @@ -8,6 +8,7 @@ SECRET_KEY = 1 INSTALLED_APPS = [ 'graphene_django', + 'graphene_django.rest_framework', 'graphene_django.tests', 'starwars', ] diff --git a/graphene_django/rest_framework/tests/test_mutation.py b/graphene_django/rest_framework/tests/test_mutation.py index bb3ba34..c34a971 100644 --- a/graphene_django/rest_framework/tests/test_mutation.py +++ b/graphene_django/rest_framework/tests/test_mutation.py @@ -1,18 +1,16 @@ -from django.db import models +import datetime + from graphene import Field from graphene.types.inputobjecttype import InputObjectType from py.test import raises +from py.test import mark from rest_framework import serializers from ...types import DjangoObjectType +from ..models import MyFakeModel from ..mutation import SerializerMutation -class MyFakeModel(models.Model): - cool_name = models.CharField(max_length=50) - created = models.DateTimeField(auto_now_add=True) - - class MyModelSerializer(serializers.ModelSerializer): class Meta: model = MyFakeModel @@ -90,6 +88,19 @@ def test_mutate_and_get_payload_success(): assert result.errors is None +@mark.django_db +def test_model_mutate_and_get_payload_success(): + class MyMutation(SerializerMutation): + class Meta: + serializer_class = MyModelSerializer + + result = MyMutation.mutate_and_get_payload(None, None, **{ + 'cool_name': 'Narf', + }) + assert result.errors is None + assert result.cool_name == 'Narf' + assert isinstance(result.created, datetime.datetime) + def test_mutate_and_get_payload_error(): class MyMutation(SerializerMutation): @@ -98,4 +109,14 @@ def test_mutate_and_get_payload_error(): # missing required fields result = MyMutation.mutate_and_get_payload(None, None, **{}) - assert len(result.errors) > 0 \ No newline at end of file + assert len(result.errors) > 0 + +def test_model_mutate_and_get_payload_error(): + + class MyMutation(SerializerMutation): + class Meta: + serializer_class = MyModelSerializer + + # missing required fields + result = MyMutation.mutate_and_get_payload(None, None, **{}) + assert len(result.errors) > 0