1- from django .db import models
1+ import datetime
2+
23from graphene import Field
34from graphene .types .inputobjecttype import InputObjectType
45from py .test import raises
6+ from py .test import mark
57from rest_framework import serializers
68
79from ...types import DjangoObjectType
10+ from ..models import MyFakeModel
811from ..mutation import SerializerMutation
912
1013
11- class MyFakeModel (models .Model ):
12- cool_name = models .CharField (max_length = 50 )
13-
14-
1514class MyModelSerializer (serializers .ModelSerializer ):
1615 class Meta :
1716 model = MyFakeModel
@@ -71,6 +70,7 @@ class Meta:
7170 model_input_type = model_input ._type .of_type
7271 assert issubclass (model_input_type , InputObjectType )
7372 assert 'cool_name' in model_input_type ._meta .fields
73+ assert 'created' in model_input_type ._meta .fields
7474
7575
7676def test_mutate_and_get_payload_success ():
@@ -88,6 +88,19 @@ class Meta:
8888 assert result .errors is None
8989
9090
91+ @mark .django_db
92+ def test_model_mutate_and_get_payload_success ():
93+ class MyMutation (SerializerMutation ):
94+ class Meta :
95+ serializer_class = MyModelSerializer
96+
97+ result = MyMutation .mutate_and_get_payload (None , None , ** {
98+ 'cool_name' : 'Narf' ,
99+ })
100+ assert result .errors is None
101+ assert result .cool_name == 'Narf'
102+ assert isinstance (result .created , datetime .datetime )
103+
91104def test_mutate_and_get_payload_error ():
92105
93106 class MyMutation (SerializerMutation ):
@@ -96,4 +109,14 @@ class Meta:
96109
97110 # missing required fields
98111 result = MyMutation .mutate_and_get_payload (None , None , ** {})
99- assert len (result .errors ) > 0
112+ assert len (result .errors ) > 0
113+
114+ def test_model_mutate_and_get_payload_error ():
115+
116+ class MyMutation (SerializerMutation ):
117+ class Meta :
118+ serializer_class = MyModelSerializer
119+
120+ # missing required fields
121+ result = MyMutation .mutate_and_get_payload (None , None , ** {})
122+ assert len (result .errors ) > 0
0 commit comments